чому, можливо, layoutSubviews НЕ автоматично викликається у вигляді, коли його кадр встановлений?

У мене є погляд. Це частина великого та складного проекту. Коли встановлено кадр мого перегляду, макетування переглядів не викликається автоматично.

Опинившись цим, я намагався вставити наступний метод у свою точку зору:

-(void) setFrame: (CGRect) frame {
    NSLog (@"setting frame");
    [super setFrame: frame];
    [self setNeedsLayout];
}

На цьому етапі макет був перероблений, коли кадр був встановлений, як і очікувалося. І якщо я прокоментував рядок setNeedsLayout, макет не було зроблено. Крім того, коли я натискаю на "входити" в рядок, де викликається супер, відладчик нічого не робить. Наскільки я можу сказати, супер метод setFrame не скасовується.

FWIW, я також зробив невеликий тестовий проект, в якому я змінив рамку зору. У цьому випадку макетування переглядів було викликано, коли я це зробив. [setNeedsLayout не було викликано в моєму тестовому проекті.] Так щось у моєму великому проекті змінює поведінку. Але я не знаю, що це щось.

Чи може хто-небудь пояснити, що може відбуватися?

EDIT: щоб з'ясувати, зміна мого кадру змінює висоту перегляду. Ширина не змінена.

3
Ви не є єдиним, що містив. stackoverflow.com/questions/728372/ …
додано Автор logancautrell, джерело

Відповідей немає

0