只想使用自动布局调整中间视图的大小

Posted

技术标签:

【中文标题】只想使用自动布局调整中间视图的大小【英文标题】:Want only to resize middle view using auto layout 【发布时间】:2014-09-29 22:28:09 【问题描述】:

我在 Xcode 6 中使用自动布局来设置这个笔尖。唯一不能正常工作的屏幕尺寸是 3.5 英寸。

这个视图作为子视图添加到我的主视图控制器的视图中。主视图控制器在添加子视图之前,如果检测到 3.5" 设备,将更改其视图的框架高度以匹配 3.5" 屏幕。

我喜欢中间部分 - 集合视图背景图像视图和集合视图来调整它们的高度,以便在 3.5 英寸屏幕上显示时,顶部工具栏和底部横幅视图和按钮始终在屏幕上可见。大白色活动指示器将始终位于 Collection 视图的中心。

但是当这个视图显示在 3.5" 屏幕上时,底部的横幅视图和按钮根本不显示。屏幕底部在横幅视图上方的某处结束。

我尝试了很多次限制和阻力优先级,但没有任何效果。

我应该怎么做才能解决这个问题?

提前致谢!

【问题讨论】:

【参考方案1】:

我改变了我的实施方式。我使用自动布局来设置顶部工具栏和底部视图。

我以编程方式创建中间集合视图背景图像和集合视图。背景图像和集合视图的高度由

计算
CGFloat collectionViewBackgroundImageHeight = [UIScreen mainScreen].bounds.size.height - _toolbarBackgroundImage.bounds.size.height - _aimBannerImageView.bounds.size.height;

CGFloat collectionViewHeight = collectionViewBackgroundImageHeight - 4;

另外,我添加以下内容以使 xib 与其父框架匹配。

-(void)viewWillAppear:(BOOL)animated

     if (is3Point5InchScreen) 
          self.view.frame = CGRectMake(0, 0, 320, 480);
     
     [super viewWillAppear:animated];

【讨论】:

以上是关于只想使用自动布局调整中间视图的大小的主要内容,如果未能解决你的问题,请参考以下文章

RootViewController 视图未使用自动布局调整大小

使用自动布局调整子视图的大小

(自动布局)容器视图调整大小但子视图不

根据最大的子视图使用自动布局调整超级视图的大小

如何使用自动调整大小和自动布局并更改其默认行为? [关闭]

Xcode 5:不同屏幕大小的 iPhone 自动布局视图调整大小问题