У меня есть более старый код iOS, который включает в себя общий пользовательский Composite Subview, полученный от UITableViewCell
, который переопределяет setFrame
и использует contentStretch
для достижения размера. Это общий пользовательский класс Table View Cell, который я могу использовать для отображения любого содержимого, которое я хочу в строке таблицы (UITableViewController
).iOS contentStretch устарел, как растянуть ячейку таблицы?
contentStretch устарел какое-то время (iOS6), но я ничего не вижу о том, как переписать код, не основанный на изображении, который использует contentStretch. Вот то, что я сейчас:
- (void)setFrame:(CGRect)frame
{
[super setFrame:frame];
[UIView setAnimationsEnabled:NO];
CGSize contentSize = cellContentView.bounds.size;
cellContentView.contentStretch = CGRectMake(225.0/contentSize.width, 0.0, (contentSize.width - 260.0)/contentSize.width, 1.0);
[UIView setAnimationsEnabled:YES];
}
Update:
Оказывается, что я могу избавиться от моего setFrame
переопределения и просто установить автоматическое изменение размера маски в моем initWithStyle
так:
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
cellContentView = [[CompositeSubviewBasedResortCellContentView alloc] initWithFrame:CGRectInset(self.contentView.bounds, 0.0, 1.0) cell:self];
cellContentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
cellContentView.contentMode = UIViewContentModeRedraw;
[self.contentView addSubview:cellContentView];
}
return self;
}
Какое содержимое вы растягиваете? – Lefteris
Это UITableViewCell, поэтому строка в таблице в основном. Я не думаю, что содержание ячейки имеет большое значение здесь, это общий пользовательский класс класса ячеек, чтобы я мог поместить все, что захочу. –