2013-11-26 6 views
0

Я пытаюсь настроить общую цветовую схему для своего приложения с помощью кода, чтобы он легко изменялся при переносе между проектами. Тем не менее, два цвета на этих компонентах сохраняют несколько разные цвета. Я использую следующий код для установки моей UITableViewCell:UILabel и UITableViewCell цвета фона выделяются разными

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{  
    if ([indexPath row] %2 != 0) 
    { 
     [cell setBackgroundColor:kTableSecondaryCellColor]; 
    } 
} 

и это для моего UILabel:

[self.lTitleBackground setBackgroundColor:kTableSecondaryCellColor]; 

Как вы можете видеть, я просто установив фон на обоих элементов к kTableSecondaryCellColor, который установки следующим образом:

#define kTableSecondaryCellColor [UIColor colorWithRed:(158.0f/256.0f) green:(171.0f/256.0f) blue:(4.0f/256.0f) alpha:0.4f] 

Однако результаты двух цветов выходят следующим образом (зеленый цвет):

enter image description here

enter image description here

+1

Можете ли вы попробовать настроить cell.contentView.backgroundColor = kTableSecondaryCellColor; Я думаю, это может вызвать проблему. – Greg

+0

Отлично, это раздражало меня в течение нескольких дней. Можете ли вы добавить его в качестве ответа, чтобы я мог его принять. –

ответ

1

Вы должны изменить цвет фона для просмотра содержимого вашей ячейки:

cell.contentView.backgroundColor = kTableSecondaryCellColor; 

Это должно решить проблему.

+0

Привет, Грег, мне было интересно, можете ли вы мне помочь. Похоже, что это не работает для iPad, по-прежнему игнорирует элемент непрозрачности. Вы не знаете, почему это было бы? –

+0

@ ElliottD'Alvarez он должен работать для обоих. Вы уверены, что у вас точно такой же код? – Greg

+0

Да, позвольте мне опубликовать код, который я использую в качестве ответа. –

2

Вы должны использовать

cell.contentView.backgroundColor = kTableSecondaryCellColor; 
0
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{  
    if ([indexPath row] %2 == 0) 
    { 
     cell.contentView.backgroundColor = kColorTablePrimary; 
    } 
    else 
    { 
     cell.contentView.backgroundColor = kColorTableSecondary; 
    } 
} 

Это код, я в данный момент, непрозрачность только будучи обнаруженным на iPhone, но у меня есть точки останова в этом коде, и это, безусловно, вызывается, когда я использую iPad просто непрозрачность не отображается. Я прошел настройку, и ячейки настроены одинаково, то же самое с UITableViews.

Смежные вопросы