UIView 在横向模式下被切断

Posted

技术标签:

【中文标题】UIView 在横向模式下被切断【英文标题】:UIView cut off in landscape mode 【发布时间】:2011-05-27 03:00:19 【问题描述】:

我有几个 UIViews 作为子视图添加到我的主视图控制器中。我的视图布局方式在纵向模式下看起来不错,但是,当它倾斜到横向模式时,子视图的底部会被切断。我想如果我设置框架的高度,它将允许屏幕滚动,从而显示被切断的子视图的部分 - 但事实并非如此。

- (void)didRotate:(NSNotification *)notification 

    UIDeviceOrientation orientation = [[notification object] orientation];

    if (orientation == UIDeviceOrientationLandscapeLeft) 
        self.view.frame = CGRectMake(0.0, 0.0, 1024.0, maxHeight);
     else if (orientation == UIDeviceOrientationLandscapeRight) 
        self.view.frame = CGRectMake(0.0, 0.0, 1024.0, maxHeight);
    

我也尝试将 UIScrollView 添加到主视图,然后将上述子视图添加到滚动视图

- (void)viewDidLoad

    scrollView = [[UIScrollView alloc] initWithFrame:self.view.frame];
    [self.view addSubview:scrollView];

    //add views to scrollView

    [super viewDidLoad];

如果子视图超出屏幕尺寸,如何使主视图“滚动”?

【问题讨论】:

你如何定义maxHeight 【参考方案1】:

将视图添加到滚动视图后,必须设置滚动视图的contentSize 属性,以便滚动视图知道要滚动到的内容。

【讨论】:

以上是关于UIView 在横向模式下被切断的主要内容,如果未能解决你的问题,请参考以下文章

iOS 版 Safari 上垂直弹性框中的最后一个元素在横向模式下被裁剪

Xcode 说 UIView 在纵向时处于横向模式

在横向模式下添加 UIView

iOS - 横向模式下的 UIView 不旋转

如何在保持纵横比且不切断图像数据的情况下跨横向和纵向显示图像

iPad:仅将 UIView 方向锁定为横向模式