iOS: какой цвет фона по умолчанию для UITableViewCell - PullRequest
4 голосов
/ 08 ноября 2011

Я хочу установить непрозрачный цвет фона для надписей внутри tableViewCell, но мне нужен цвет фона по умолчанию для uiTableViewCell, который предоставляет Apple.

Так как я могу получить этот фон или какого он цвета?

Привет

Ответы [ 4 ]

1 голос
/ 05 декабря 2013

Чтобы сбросить цвет переработанного (снятого с производства) UITableViewCell , это работало для меня в iOS 5, 6 и 7:

cell.backgroundColor = nil;

Как и предлагали другие, я записал значение этого свойства для вновь созданной ячейки. Я видел null. Это дало мне идею обойтись без собственности. Кажется, работает во всех 3 версиях iOS.

Как я смутно припоминаю, iOS кардинально изменила способ установки значений по умолчанию для цветов в UITableView и UITableViewCell. В некоторых версиях цвета родительских контейнеров были подобраны. В некоторых версиях этот цвет по умолчанию был серовато-белым, но со временем менялся. В iOS 7 White применяется независимо от родителей. Примечание: не цитируйте меня по этому пункту; ищите это, если вам не все равно. Дело в том, что ответы, говорящие вам об установке определенного цвета, дают вам плохой совет.

1 голос
/ 08 ноября 2011
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    UIColor *color = [cell backgroundColor];
    NSLog(@"%@",color);

Результат

2011-11-08 17: 09: 20.101 test1 [5439: 207] UIDeviceRGBColorSpace 1 1 1 1

Указывает, что цвет по умолчанию: красный = 1, зеленый = 1, синий = 1, альфа = 1. Это белый цвет.

Обратите внимание, что UITableViewCell также имеет свойство contentView, которое содержит реальный видимый цвет.

1 голос
/ 10 ноября 2011

Я нашел решение: Различные цвета ячеек в зависимости от версии iOS (от 4.0 до 5.0)

Подводя итог, я просто реализую метод

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

Спасибо!

1 голос
/ 08 ноября 2011

Вы можете войти в цвет фона ячейки

NSLog(@"cell background color is %@", cell.backgroundColor);

или содержимое ячейки ViewView

NSLog(@"cell contentView's background color is %@", cell.contentView.backgroundColor);

Вы также можете просто установить цвет вашего ярлыка напрямую:

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