Вот что я нашел в моем деле.Когда я зарегистрировал RGB и альфа цвета фона UIView, я обнаружил, что все они были установлены в 0, когда была выбрана ячейка:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
CGFloat red, green, blue, alpha;
[viewE.backgroundColor getRed:&red green:&green blue:&blue alpha:&alpha];
NSLog(@"Selected: Red=%f, Green=%f, Blue=%f, alpha=%f", red, green, blue, alpha);
}
-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
CGFloat red, green, blue, alpha;
[viewE.backgroundColor getRed:&red green:&green blue:&blue alpha:&alpha];
NSLog(@"Deslected: Red=%f, Green=%f, Blue=%f, alpha=%f", red, green, blue, alpha);
}
Первоначально ничего не было выбрано.Нажмите на строку в таблице, и в журнале отобразится:
Selected: Red=0.000000, Blue=0.000000, Green=0.000000, alpha=0.000000
, и мое подпредставление не появится (Примечание Альфа = 0).Забавно, потому что, когда я зарегистрировал viewE.alpha, он показал, что это 1. 1. 1007 *
Нажмите строку еще раз, чтобы отменить ее выбор:
Deselected: Red=0.667000, Blue=0.776000, Green=0.220000, alpha=1.000000
Это то, что я ожидаю.
MyЯчейка таблицы - это пользовательский UITableViewCell.Итак, в моем собственном классе UITableViewCell я добавил этот код:
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
UIColor *saveColor = self.viewE.backgroundColor;
[super setSelected:selected animated:animated];
if (selected)
self.viewE.backgroundColor = saveColor;
}
Теперь представление viewE появляется, когда ячейка выбрана.
Кажется, что код здесь компенсирует условие, которое должноне существовало в первую очередь, но это работает!