IPhone - настройка фона на UITableViewController
Есть ли способ установить фоновый вид на UITableViewController?
Я пытаюсь использовать код, который я использую в UIViewController
, но представление просматривает все содержимое табличного представления. Если я добавлю представление фона в cellForRowAtIndexPath-method
, он вообще не показывается. Кто-нибудь делал это раньше или имел представление о том, как это можно сделать?
Вот код, который я использую:
UIImage *image = [UIImage imageNamed: @"background.jpg"];
UIImageView *backImage = [[UIImageView alloc] initWithImage: image];
[self.view addSubview: backImage];
[self.view sendSubviewToBack: backImage];
Ответы
Ответ 1
(Это в основном то же самое, что и решение Hans Espen выше, но для краткости использует удобные методы)
Поместите это в свой метод - [UITableViewControllerSubclass viewDidLoad]
:
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"BackgroundPattern.png"]];
Нет смысла избегать нескольких автореализаций в методе viewDidLoad, так как он редко вызван редко (когда действительно загружается представление) и поэтому будет иметь незначительное влияние на производительность.
N.B. Вы всегда должны использовать PNG-изображения на iPhone, а не в формате JPEG или в любом другом формате.
Ответ 2
Я знаю, что это было давно, но только для записи.
Думаю, я нашел лучшее решение, используя UITableView.backgroundView
:
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"lisbon.png"]];
self.tableView.backgroundView = imageView;
[imageView release];
Я попытался с размером изображения 320x480 на iPhone и отлично работает (я тоже пытался с .jpg).
Ответ 3
Собственно, я получил его!:)
NSString *backgroundPath = [[NSBundle mainBundle] pathForResource:@"background" ofType:@"jpg"];
UIImage *backgroundImage = [UIImage imageWithContentsOfFile:backgroundPath];
UIColor *backgroundColor = [[UIColor alloc] initWithPatternImage:backgroundImage];
self.tableView.backgroundColor = backgroundColor;
[backgroundColor release];
Ответ 4
Для Swift используйте это,
self.tableView.backgroundView = UIImageView(image: UIImage(named: "backgroundImage.png"))
Ответ 5
self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yourImage.png"]];