Фон сотовый и аксессуар
Я пытаюсь установить фон ячейки моего UITableViewCells, но я борюсь с цветом фона UIAccessoryView. Он не изменяется.
Может ли кто-нибудь помочь мне сделать цвет фона UIAccessoryView прозрачным (или фактически любым другим цветом)?
Это мой код
cell.textLabel.backgroundColor = [UIColor clearColor];
cell.accessoryView.backgroundColor = [UIColor clearColor];
cell.detailTextLabel.backgroundColor = [UIColor clearColor];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
if(indexPath.row % 2) {
cell.contentView.backgroundColor = [UIColor clearColor];
}
else {
cell.contentView.backgroundColor = [UIColor redColor];
}
Вот изображение, иллюстрирующее проблему.
![UIAccessoryView does not change background color.]()
Ответы
Ответ 1
Вам нужно установить свойство backgroundView
для UITableViewCell. Например:
UIView* myBackgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
myBackgroundView.backgroundColor = [UIColor redColor];
myCell.backgroundView = myBackgroundView;
Если вам нужно что-то более необычное, например, красный фон градиента, вы должны реализовать подкласс UIView, который рисует градиент в drawRect:
и использует его как backgroundView.
Вы также можете установить свойство selectedBackgroundView
, если вы хотите, чтобы пользовательский вид для выбранной ячейки таблицы.
Ответ 2
В функции
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Используйте следующий код
cell.contentView.superview.backgroundColor = [UIColor redColor];
для более подробной информации
Ответ 3
Если вы хотите изменить его в пользовательском классе UITableViewCell
, вы можете просто использовать:
override func layoutSubviews() {
super.layoutSubviews()
self.backgroundColor = UIColor.whiteColor()
}
изменение фона внутри awakeFromNib()
или init?(coder aDecoder: NSCoder)
не работает!