Как получить размер кадра после авторазмера - PullRequest
5 голосов
/ 02 сентября 2011

Интересно, как и когда (viewDidLoad, viewWillAppear, viewDidAppear) я могу получить размер фрейма UIViews, который был автоматически изменен, чтобы соответствовать его разделенному виду?

Ответы [ 4 ]

1 голос
/ 02 сентября 2011

Из вашего вопроса непонятно, почему вы этого хотите, но я думаю, что это макет ваших подвидов. К счастью, Apple знала, что вы захотите сделать это, и внедрила -(void)layoutSubViews Посмотрите на это: Когда вызывается layoutSubviews?

0 голосов
/ 29 октября 2014
- (void)viewDidAppear:(BOOL)animated {
    CGFloat uIViewWidth = self.uIView.bounds.size.width;
    CGFloat uIViewHeight = self.uIView.bounds.size.height;
    CGRect uIViewSize = CGRectMake(0, 0, uIViewWidth, uIViewHeight);
}
0 голосов
/ 22 ноября 2013

Я пытался layoutSubviews, но он вызывается более одного раза, что является проблемой, когда мне нужен кадр автоматического размера для создания CGContext для рисования.

Решение, которое я использовал, состояло в том, чтобы выставить метод init в моем пользовательском UIView, чтобы его родительский контроллер представления вызывал его viewWillAppear.

Хотелось бы, чтобы был способ сделать все это в пользовательской реализации UIView, но это ускользает от меня (а также документов Google и Apple и SO).

0 голосов
/ 02 сентября 2011
    NSLog(@"%f; %f; %f; %f;", yourView.frame.origin.x, yourView.frame.origin.y, yourView.frame.size.width, yourView.frame.size.height);

вот как вы можете получить кадр вашего взгляда

...