Как получить доступ к tableView в шаблоне раскадровки Master-Detail? - PullRequest
1 голос
/ 27 октября 2011

Я использую раскадровку и шаблон основных данных Master-Detail в Xcode4.

Я хочу установить фоновое изображение для моего tableView на контроллере основного представления.

Для этогобыло просто для iPhone, я просто сделал это в viewDidLoad из MasterViewController.m:

self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];

Однако для iPad это не работает;вместо этого в главном tableView отображается фон по умолчанию.

Я бы не думал, что это проблема splitViewController;с точки зрения объекта MasterViewController у него всегда должен быть один и тот же tableView, верно?На самом деле, я знаю, что это так, потому что этот код работает как на iPad, так и на iPhone, строка над назначением «backgroundColor», и это использует тот же объект «self.tableView»:

self.tableView.separatorColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"separator.png"]];

Вот как это выглядит на iPhone, с работающими как разделителем, так и фоновым изображением (извините, пока не могу публиковать изображения в строке):

http://i.imgur.com/G7djz.png

И, используятот же код на iPad:

http://i.imgur.com/8L0ZK.png

Что мне нужно установить, чтобы установить фоновое изображение на мастер tableView?

Ответы [ 2 ]

2 голосов
/ 27 октября 2011

Вам нужно сделать фон понятным в конструкторе интерфейсов.Затем вам нужно сказать self.tableView.backgroundColor = [UIColor clearColor]; в вашем viewDidLoad.Наконец, поместите UIView за ним с соответствующим цветом фона.По какой-то причине фоновый материал переопределяется в самом UITableView.

1 голос
/ 28 октября 2011

Aha! Я нашел секретный соус:

UIImage *backgroundImage = [UIImage imageNamed:@"foo.png"];
UIView *backgroundView = [[UIView alloc] init];
[backgroundView setBackgroundColor:[UIColor colorWithPatternImage:backgroundImage]];
[self.tableView setBackgroundView:backgroundView];

Ключ использует [self.tableView setBackgroundView:...] вместо свойства self.tableView.backgroundColor = ...

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