Я пытаюсь вставить некоторые UILabels в первую строку UITableView, но я получаю неожиданные результаты. Ради краткости, вот резюме:Настройка строки 0 UITableView
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString* identifier = @"cell";
UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil)
cell = [[UITableViewCell alloc[ .....
cell.textLabel.text = @"";
if (indexPath.row == 0) {
cell.backgroundColor = ....
UILabel* x = .....
[x setTag:1];
[cell insertSubview:x];
}
else {
cell.textLabel.text = ....
for (UIView* view in cell.subviews) {
if (view.tag == 1)
[view removeFromSuperview];
}
}
return cell
}
Это суть в любом случае. Проблема в том, что, когда цвет фона задан правильно, в любое время, когда я просматриваю представление таблицы, пользовательская вставка UILabel I исчезает. Возможно, это связано с непониманием dequeueReusableCellWithIdentifier, но независимо от того, я бы подумал, что ярлык будет повторно вставлен.
При установке цвет фона ячейки в '-tableView: cellForRowAtIndexPath:' работает большинство время, * официальный * способ сделать это в ['-tableView: willDisplayCell: forRowAtIndexPath:'] (http://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDelegate_Protocol/Reference/Reference .html # // apple_ref/ОКК/intfm/UITableViewDelegate/Tableview: willDisplayCell: forRowAtIndexPath :). –
'insertSubview'? это может быть только пример вашего кода, но он помогает быть точным. Просто скопируйте и вставьте реальный код, а затем мы можем точно видеть, что происходит. Вы также должны добавлять представления к содержимому 'contentView' ячейки не прямо к ячейке –