UIScrollview звонящие суперпредставления layoutSubviews при прокрутке?

Я добавил 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

12
задан marchinram 12 May 2010 в 02:59
поделиться

2 ответа

Да, UIScrollView вызывает layoutubviews при каждой прокрутке. Я мог бы поклясться, что это было где-то указано в документации, но я думаю, что нет.

В любом случае, преобладающая идея заключается в том, что UIScrollView должен размещать свои материалы так, чтобы представления, которые в настоящее время не могут быть видны, не должны размещаться. По мере того, как пользователи прокручивают прокрутку, он должен добавлять и удалять подвиды по мере необходимости. Я предполагаю, что это то, что TableViews использует для постановки в очередь скрытых ячеек таблицы.

Есть какая-то причина, по которой вас должно беспокоить, вызывается ли Layoutsubviews или нет?

2
ответ дан 2 December 2019 в 23:50
поделиться

Не уверен, что я правильно понимаю вашу проблему, но когда вы прокручиваете табличное представление, оно удаляет ячейки, не показанные из памяти, и загружает их снова, когда они прокручиваются обратно в видимость (ячейки выделяются по запросу, только видимые), в эффект от выполнения того, что вы, кажется, описываете.

0
ответ дан 2 December 2019 в 23:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: