Я добавил UITableView как подпредставление к пользовательскому классу UIView, я продолжаю работать. Однако я заметил, что каждый раз, когда я прокручиваю таблицу, она называет мои классы layoutSubviews. Я вполне уверен, это - UIScrollview, который наследовала таблица, от которого на самом деле делает это, но требуемый, чтобы знать, существует ли способ отключить эту функциональность и если не, почему это происходит? Я не понимаю, почему при прокрутке scrollview, ему нужно его суперпредставление к расположению его подпредставления.
Код:
@implementation CustomView
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
self.clipsToBounds = YES;
UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0.0, 15.0, 436.0, 132.0) style:UITableViewStylePlain];
tableView.dataSource = self;
tableView.delegate = self;
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
tableView.backgroundColor = [UIColor clearColor];
tableView.showsVerticalScrollIndicator = NO;
tableView.contentInset = UIEdgeInsetsMake(kRowHeight, 0.0, kRowHeight, 0.0);
tableView.tag = componentIndex;
[self addSubview:tableView];
[tableView release];
}
return self;
}
- (void)layoutSubviews {
// This is called everytime I scroll the tableview
}
@end
Да, UIScrollView вызывает layoutubviews при каждой прокрутке. Я мог бы поклясться, что это было где-то указано в документации, но я думаю, что нет.
В любом случае, преобладающая идея заключается в том, что UIScrollView должен размещать свои материалы так, чтобы представления, которые в настоящее время не могут быть видны, не должны размещаться. По мере того, как пользователи прокручивают прокрутку, он должен добавлять и удалять подвиды по мере необходимости. Я предполагаю, что это то, что TableViews использует для постановки в очередь скрытых ячеек таблицы.
Есть какая-то причина, по которой вас должно беспокоить, вызывается ли Layoutsubviews или нет?
Не уверен, что я правильно понимаю вашу проблему, но когда вы прокручиваете табличное представление, оно удаляет ячейки, не показанные из памяти, и загружает их снова, когда они прокручиваются обратно в видимость (ячейки выделяются по запросу, только видимые), в эффект от выполнения того, что вы, кажется, описываете.