UITableView цвет фона - PullRequest
       1

UITableView цвет фона

15 голосов
/ 17 июля 2011

Я видел различные сообщения о цвете фона для UITableView для ios 4.2, но я просто не могу изменить цвет фона.

UIView *bgView = [[[UIView alloc] init] autorelease];
bgView.backgroundColor = [UIColor blackColor];
bgView.opaque = YES;
self.myTableView.backgroundView = bgView;

Я поместил этот код в viewDidLoad, но он выигралне меняй цвета.Мой UITableView - это IBOutlet внутри UIViewController с UITableViewDelegate & UITableViewDataSource, поэтому я думаю, что при viewDidLoad UITableView уже визуализирован, и я не могу изменить его цвет фона.

EDIT * - UITableView сгруппирован

Ответы [ 6 ]

37 голосов
/ 18 апреля 2012

Попробуйте установить фоновое представление табличного представления в ноль, а также установить цвет фона табличного представления

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.myTableView.backgroundView = nil;
    self.myTableView.backgroundColor = [UIColor blackColor];
}
19 голосов
/ 23 января 2014

Просто измените свойство backgroundColor и tableView, и tableView backgroundView.

- (void)viewDidLoad {
    [super viewDidLoad];

   id desiredColor = [UIColor clearColor];
   self.tableView.backgroundColor = desiredColor;
   self.tableView.backgroundView.backgroundColor = desiredColor;
}
4 голосов
/ 20 октября 2012

Подтвердите решение Edward Huynh для всех iOS <6.0 <br>
Используйте следующий код в viewDidLoad, если вы не объявили myTableView в .h

self.tableView.backgroundView = nil;
self.tableView.backgroundColor = [UIColor greenColor];

Добавьте следующие строки, если хотитезагрузить шаблон в качестве фона

self.tableView.opaque = NO;
self.tableView.backgroundColor = [UIColor clearColor];
self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"myImage"]];
0 голосов
/ 09 декабря 2015

Просто добавлю к этому. Мне нужно было изменить цвет фона просмотра таблицы для определенного эффекта. Вы можете сделать это либо глобально:

[[UIScrollView appearance] setBackgroundColor:[UIColor whiteColor]];

Или ограничить его одним контроллером (iOS9):

[[UIScrollView appearanceWhenContainedInInstancesOfClasses:@[[MyViewController class]]] setBackgroundColor:[UIColor whiteColor]];
0 голосов
/ 17 июля 2011

Фоновый вид размером 0 на 0 пикселей не будет виден.Попробуйте initWithFrame: дать представлению реальный размер.

0 голосов
/ 17 июля 2011

используйте этот делегат для изменения цвета

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    cell.backgroundColor = [UIColor redColor];
}

РЕДАКТИРОВАТЬ 1:

UIView* backgroundView = [ [ [ UIView alloc ] initWithFrame:CGRectZero ] autorelease ];
backgroundView.backgroundColor = [ UIColor yellowColor ];
cell.backgroundView = backgroundView;
for ( UIView* view in cell.contentView.subviews ) 
{
    view.backgroundColor = [ UIColor clearColor ];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...