Как установить цвет фона tableView - PullRequest
2 голосов
/ 12 мая 2010

Я попытался полностью, но не смог установить backgroundColor TableView. установка tableView.backgroundColor и / или cell.backgroundColor на clearColor не работала, когда родительский контроллер представления был UIViewContoller.

Моя структура файла пера

FileOwner
View
UITableView

(Примечание: я установил TableView в раздел groupedTable)

Первая попытка, я создал UIView в коде viewDidLoad

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 160, 300)] autorelease;
[view setBackgroundColor:UIColor blueColor]; // color it just to see if it is created at the right place
[self.tableView sendSubViewToBack:view];

Работает, но скрывает содержимое ячейки. Я могу видеть содержимое заголовка, но не содержимое ячейки. (Но когда я изменяю координату представления (0,150,160,300), тогда я могу видеть содержимое ячейки, но затем теряется backgroundColor таблицы.

Вторая попытка, Я создал imageView

View
ImageView
UITableView

и установите self.tableView.backgroundColor = [UIColor clearColor];, но не сработало.

Я гуглил, но не получил мирного ответа.

Ответы [ 4 ]

5 голосов
/ 13 мая 2010

UITableView с сгруппированным стилем использует фоновое представление. Чтобы избавиться от фона и показать цвет фона, попробуйте выполнить одно из следующих действий:

tableView.backgroundView = nil;
tableView.backgroundView = [[[UIView alloc] init] autorelease];

После этого вы сможете нормально установить цвет фона:

tableView.backgroundColor = [UIColor redColor];

Кстати, только представление может быть родителем / суперпредставлением другого представления, а контроллер представления не является представлением.

3 голосов
/ 12 мая 2010

Это всегда работало для меня:

UITableView *tableView = [[UITableView alloc] initWithFrame:tableFrame style:UITableViewStylePlain];
tableView.backgroundColor = [UIColor redColor];
[parentView addSubview:tableView];

Убедитесь, что tableView не ноль, не скрыт, имеет правильный фрейм и что он был добавлен в правильный родительский вид.

2 голосов
/ 04 октября 2016

Swift Version

    let backgroundView = UIView(frame: CGRect(x: 0, y: 0, width: self.tableView.bounds.size.width, height: self.tableView.bounds.size.height))
    backgroundView.backgroundColor = UIColor.redColor()
    self.tableView.backgroundView = backgroundView
0 голосов
/ 13 марта 2013
UIView* backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.bounds.size.width, self.tableView.bounds.size.height)];
[backgroundView setBackgroundColor:[UIColor redColor]];
[self.tableView setBackgroundView:backgroundView];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...