Изображение UITableView
Я пытаюсь настроить png-образ в качестве фона таблицы. Со следующим кодом все в порядке! Но только на iPhone Simulator. Если я попытаюсь запустить приложение на устройстве iPhone, фон tableview останется белым (или ясным). Что вы делаете, это то, о чем я пытался установить цвет фона. Я пробовал много способов до следующего, но все имеют ту же проблему.
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.opaque = NO;
self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
Заранее благодарю вас!
Ответы
Ответ 1
Пожалуйста, используйте следующий код.
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame];
self.tableView.backgroundView = tempImageView;
[tempImageView release];
Спасибо,
Ответ 2
Я думаю, что этот подход чище:
UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"TableBackground.jpg"]];
self.tableView.backgroundColor = background;
[background release];
Ответ 3
Является ли ваше изображение фактически названным TableViewBackground.PNG
(обратите внимание на капиталы)? Вам нужно, чтобы регистр соответствовал точно на устройстве iOS, тогда как ему не нужно точно соответствовать Simulator.
Ответ 4
Простая быстрая версия будет
let tempImageView = UIImageView(image: UIImage(named: "yourImage"))
tempImageView.frame = self.tableView.frame
self.tableView.backgroundView = tempImageView;
Ответ 5
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame];
self.tableView.backgroundView = tempImageView;
[tempImageView release];
Это работает отлично. Благодаря Равину от Jona
Ответ 6
Подкласс IBDesignable tableview, который позволит вам прикрепить изображение из конструктора интерфейса
import UIKit
@IBDesignable
class DesignableTableView: UITableView {
@IBInspectable var backgroundImage: UIImage? {
didSet {
if let image = backgroundImage {
let backgroundImage = UIImageView(image: image)
backgroundImage.contentMode = UIViewContentMode.ScaleToFill
backgroundImage.clipsToBounds = false
self.backgroundView = backgroundImage
}
}
}
}
Ответ 7
[TableView setBackgroundView:nil];
[TableView setBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"apple.png"]] ];
Ответ 8
Это прекрасно работает, также если вы хотите использовать образ для вашего фона.
UIImage *image = [UIImage imageNamed:@"something.png"];
self.tableView.backgroundView = nil;
self.view.backgroundColor = [UIColor colorWithPatternImage:image];
Ответ 9
Немного поздно, но, возможно, для всех остальных, ищущих решение. Я мог бы получить эту работу, используя следующий код в viewDidLoad
методе UITableViewController
:
self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
self.tableView.backgroundColor = [UIColor clearColor];
или с использованием только цвета фона:
self.parentViewController.view.backgroundColor = [UIColor scrollViewTexturedBackgroundColor];
self.tableView.backgroundColor = [UIColor clearColor];
Мне потребовалось некоторое время, чтобы понять это, но теперь это работает как шарм.
Ответ 10
Objective-c версия:
cell.backgroundColor = [UIColor clearColor];
Также см. это:
Как создать UITableViewCell с прозрачным фоном
Ответ 11
UIImageView *imageviewTemp = [[UIImageView alloc] init];
[(UIImageView *)imageviewTemp sd_setImageWithURL:[NSURL URLWithString:self.stringOfPassedImage]];
[imageviewTemp setFrame:self.tableView.frame];
self.tableView.backgroundView = imageviewTemp;