我有一个视图,其中包含一些按我想要的方式工作的文本视图。无论是横向还是纵向,都扩展到相同的右边距。
我最近尝试将普通视图更改为滚动视图。不过,我没有运气像以前那样扩展这些文本视图。在横向模式下,所有东西都挤在左侧,宽度与纵向手机相同。
这是一些代码。
- (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方法与无参数的方法相同,只是它使用传递的方向而不是状态栏的当前方向。
我已经检查过了,我的滚动视图设置为自动调整子视图。
任何想法将不胜感激。谢谢。
更新:我添加了
self.view.autoresizesSubviews = true;
for (UIView *view in self.view.subviews) {
view.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth;
}
查看didload 并将旋转到界面方向。没变。