Как установить фон UITableView для изображения? - PullRequest
4 голосов
/ 21 октября 2009

Я использую UITableViewController, который загружает таблицу. У меня есть Nib-файл с UITableView в нем. Теперь я хочу установить фон tableView либо из конструктора интерфейса или из TableViewController в изображение.

Как это сделать.

ОК, поэтому я создал UIImage в моем контроллере. Теперь, когда я добавляю, куда мне нужно добавить это.

Когда я пытаюсь добавить его и установить цвет tableView на clearColor, он просто показывает мне изображение, а не таблицу, хотя я проверяю, что изображение отправляется на заднюю часть всех видов.

Ребята Обратите внимание, что я не имею дело с UIView и не добавляю tableView в качестве его подпредставления, но я имею дело с UITableView.

Ответы [ 7 ]

5 голосов
/ 21 октября 2009

Поместите UIImageView за UITableView, затем сделайте следующее:

tableView.backgroundColor = [UIColor clearColor];
4 голосов
/ 21 октября 2009

Каким-то образом играя, я смог найти способ.

self.tableView.backgroundColor = [UIColor clearColor];

self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageWithData:imageData]];
2 голосов
/ 13 февраля 2012

self.tableView.backgroundColor = [UIColor clearColor];

self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @ "parentViewBackground.png"]];

размер изображения должен быть
2x - 640 * 960
1x - 320 * 480

размер меньше указанного выше, будет облицован плиткой.

1 голос
/ 02 января 2010

Метод rkbang backgroundColor = [UIColor colorWithPatternImage: image] отлично работает. Вот еще один метод для достижения того же эффекта путем добавления нового представления в parentViewController. Это было бы полезно, если вы хотите замаскировать другое содержимое, которое может иметь parentViewController.

В вашем подклассе UITableViewController, в -viewDidLoad вставьте:

//make a cool background image
self.tableView.backgroundColor = [UIColor clearColor];
UIImage *patternImage = [UIImage imageNamed:@"backgroundImage.png"];
UIImageView * backgroundImageView = [[UIImageView alloc] initWithImage:patternImage];

[self.parentViewController.view addSubview:backgroundImageView];
[self.parentViewController.view sendSubviewToBack:backgroundImageView];
//release the background image and image view (the backgroundImageView is still retained by the parentViewController)
[patternImage release];
[backgroundImageView release];

Возможно, вы захотите отслеживать backgroundImageView, чтобы вы могли удалить или заменить его. Приведенный выше пример кода оставляет parentViewController для управления новым представлением. Если вы загружаете и выгружаете этот UITableView, вы будете пропускать эти UIImageViews при каждой загрузке, если только parentViewController не выпускает их с одинаковой скоростью.

0 голосов
/ 23 ноября 2011

Вы можете использовать backgroundView табличного представления. Это сработало для меня.

[self.tableView setBackgroundView: [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"????.png"]]];

где ????. Png - ваше фоновое изображение.

0 голосов
/ 21 октября 2009

Свойства TableView включают цвет фона. Установите это в clearColor; и поместите изображение позади этого. (В IB я думаю, вам придется удалить табличное представление, добавить изображение и затем снова добавить свое табличное представление)

если вы подклассифицируете UITableViewController, вы получаете бесплатный просмотр таблицы, никакой ivar или nib не требуется, однако, поскольку вы используете фон, я бы придерживался IB.

0 голосов
/ 21 октября 2009

То, что вы можете сделать, это установить для свойства backgroundColor табличного представления значение [UIColor clearColor] и иметь UIImageView того же размера и положения под вашим табличным представлением, чтобы показать фон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...