Подтвердить что ты не робот

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];
4b9b3361

Ответ 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"]];