Получите правильный размер UIView при открытии Пейзаж

У меня есть UITextView, который в портретных размеров шириной 500 пикселей.
Я добавляю его по коду в качестве подпредставления, но я не могу в viewdidapper получить правильный размер, если приложение открыто в ландшафтном режиме.
После вращения устройства оно работает правильно. Если открытого ландшафта нет. Как я могу рассчитать правильный размер этого текстового представления при открытии ландшафта?

Спасибо

1 ответ

Добавьте уведомитель в функцию viewWillAppear

    -(void)viewWillAppear:(BOOL)animated{
    [[NSNotificationCenter defaultCenter] addObserver:self  selector:@selector(orientationChanged:)  name:UIDeviceOrientationDidChangeNotification  object:nil];
}

Изменение ориентации уведомляет эту функцию

- (void)orientationChanged:(NSNotification *)notification{
[self adjustViewsForOrientation:[[UIApplication sharedApplication] statusBarOrientation]];
}

и вы рассчитываете размер вашего textView

- (void) adjustViewsForOrientation:(UIInterfaceOrientation) orientation {

if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown) 
{ 
    //calculate the portrait textView size   
}
else if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight) 
{
    //calculate the landscape textView size  
}}

я надеюсь, что это поможет

Другие вопросы по тегам