Первое предложение;не используйте IB для пользовательских UITableViewCell
s.
Next;убедитесь, что вы добавляете любые пользовательские представления к UITableViewCell
contentView
... а не только к самой ячейке.При отображении фрагментов редактирования (например, кнопки удаления) содержимое UITableViewCell
автоматически сжимается.Если у вас есть правильная маска UIViewAutoresizing на UILabel
/ независимо от того, что вы добавили к contentView
, она будет правильно изменена / перемещена.
Редактировать, чтобы ответить на ваш вопрос в комментариях:
Так же, как и при любом другом просмотре.Вы можете сделать его классом самостоятельно или, в зависимости от ваших потребностей, создать его специально.Класс, как правило, лучший, поэтому вы можете ссылаться на любые свои пользовательские элементы, которые вы добавили в ячейку, и повторно использовать ячейки / и т. Д.
Но вот пример построения одного специального.
UIImageView * myCheckBox = ...
UILabel * myLabel = ...
UITableViewCell * cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
[cell.contentView addSubview:myCheckBox];
[cell.contentView addSubview:myLabel];
self.customCell = cell;
Редактировать # 2
- (void)layoutSubviews
{
[super layoutSubviews];
self.textLabel.frame = CGRectMake(50, self.textLabel.frame.origin.y, self.contentView.frame.size.width - 50, self.textLabel.frame.size.height);
}