iOS UIView получить кадр после поворота

Я пытаюсь получить размер моегоUIView после изменения ориентации. На мой взгляд, контроллер я реализуюdidRotateFromInterfaceOrientation: и позвонитьsetNeedsLayout: на мой взгляд. На мой взглядlayoutSubviews метод, он пытается выполнить некоторую логику на основе своего нового размера кадра после поворота, но размер кадра не был обновлен, чтобы отразить новую ориентацию (например, он по-прежнему 768x1024 вместо 1024x768 после перемещения в альбомную ориентацию).

Как получить обновленный размер кадра?

 phosphoer22 июн. 2012 г., 07:17
Сумасшедший, это исправило это для меня! Спасибо!
 Remover21 авг. 2012 г., 16:27
Почему это работает ??
 Pochi22 июн. 2012 г., 07:13
Вы пытались использовать границы вместо?

Ответы на вопрос(2)

Решение Вопроса

Просто собираюсь ответить тем, что сказал Луис Оскар, чтобы вопрос появился как ответ. Решение состоит в том, чтобы получить доступ к "границам" свойство, а не "рамка".

 04 июн. 2013 г., 19:27
Это именно то, что я искал. Спасибо!

Пожалуйста, попробуйте этот метод. Этот метод будет вызываться автоматически во время ротации. Надеюсь, это поможет вам. Благодарю.

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {

    if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
        NSLog(@"%f,%f",self.view.frame.size.width,self.view.frame.size.height);
    } else if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) {
        NSLog(@"%f,%f",self.view.frame.size.width,self.view.frame.size.height);
    }
}
 phosphoer22 июн. 2012 г., 22:56
Проблема с этим для меня заключается в том, что рассматриваемое представление находится на несколько уровней ниже контроллера представления (как в подвиде подпредставления представления viewcontroller). Я не уверен, каким образом я мог бы получить эту информацию от контроллера представления к представлению разумным способом.

Ваш ответ на вопрос