Как инициализировать представление без известного фрейма?


Я строю представление без файла .xib, просто используя метод loadView. Но в точке, когда loadView называется, рамка зрения еще неизвестна. Поэтому я использую его только для построения иерархии представлений без конкретных рамок. (Чем я обновляю макет вида, когда его рамка известна.) Вопрос в следующем: должен ли я использовать [[UIView alloc] init] или [[UIView alloc] initWithFrame:CGRectZero] или может быть что-то еще, чтобы инициализировать представление без известного фрейма? Вот код:

- (void)loadView
{
    UIView *containerView = [[UIView alloc] init];
    // or 
    // UIView *containerView = [[UIView alloc] initWithFrame:CGRectZero];
    // or something else?        

    // ...

    self.view = containerView;
    [containerView release];
}
1 3

1 ответ:

- (id)initWithFrame: является назначенным инициализатором для UIView, поэтому вы должны использовать его с нулевым размером rect.