Получите правильный размер 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
}}
я надеюсь, что это поможет