У меня было представление с некоторыми текстовыми изображениями в нем, которые работали так, как я хотел. Расширение до одного и того же правого края, будь то пейзаж или портрет.iOS textviews не расширяется в scrollview в ландшафте
Недавно я попробовал изменить обычный вид на прокрутку. Мне не повезло, что эти текстовые представления расширяются, как они когда-то делали. Когда в ландшафтном режиме все остается сбитым с левой стороны с той же шириной, что и портретный телефон.
Вот несколько кодов.
- (void)viewDidLoad {
CGSize screen = [self handleScreenOrientation];
[(UIScrollView *)self.view setContentSize:CGSizeMake(screen.width, screen.height)];
}
- (CGSize)handleScreenOrientation {
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
CGRect screenRect = [[UIScreen mainScreen] bounds];
if (orientation == UIDeviceOrientationPortrait || orientation == UIDeviceOrientationPortraitUpsideDown) {
return CGSizeMake(screenRect.size.width, screenRect.size.height);
}
else {
return CGSizeMake(screenRect.size.height, screenRect.size.width);
}
}
- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
CGSize screen = [self handleScreenOrientation:toInterfaceOrientation];
UIScrollView *scrollView = (UIScrollView *)self.view;
scrollView.frame = CGRectMake(0, 0, screen.width, screen.height);
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width, scrollView.frame.size.height);
[scrollView setNeedsDisplay];
}
Метод handleScreenOrientation с ориентацией прошел такой же, как тот, ш/без параметров, только он использует переданную ориентацию вместо текущей ориентации в строке состояния.
Я проверил, и мое scrollview настроено на авторазрешение подзонов.
Любые идеи были бы высоко оценены. Благодарю.
Update: Я добавил
self.view.autoresizesSubviews = true;
for (UIView *view in self.view.subviews) {
view.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth;
}
к viewdidload и willrotatetointerfaceorientation. Без изменений.
Похоже, вам нужно установить autoresizingMasks. – Wienke
Все мои ограничения и многое другое, что работало до того, когда супервизор был просто просмотром. Теперь он изменил поведение, поскольку это scrollview. – erosebe
Вы, конечно, покрыли все базы на autoresizingMask своим добавленным кодом. Если посмотреть более внимательно, я думаю, что я вижу ответ, который я опубликую ниже ... – Wienke