如何使用 Xcode 8 上的自动布局调整对象的大小以适应不同的屏幕尺寸?

Posted

技术标签:

【中文标题】如何使用 Xcode 8 上的自动布局调整对象的大小以适应不同的屏幕尺寸?【英文标题】:How to resize objects for different screen sizes using auto layout on Xcode 8? 【发布时间】:2016-11-06 12:20:36 【问题描述】:

我需要让简单的应用程序适应不同的 iPhone 屏幕,例如 iPhone 4、iPhone 5、iPhone 6/6s、iPhone 6 Plus(见下图)。

视图控制器中有两个视图。包含按钮和标签的顶视图(灰色区域)。底部视图(白色区域),包含 10 个图像视图、9 个苹果和一个盘子。

是否可以使用自动布局根据屏幕大小按比例调整每个视图中的对象大小?

我只需要为纵向的 iPhone 屏幕执行此操作。

【问题讨论】:

【参考方案1】:

顶视图是个好主意 - 使用UICollectionView。 一个数字 - 这是一个 UICollectionViewCellUIImageView 作为子视图。对于此单元格,您必须返回大小:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
    CGFloat size = CGRectGetWidth(collectionView.bounds)/5.0;
    return CGSizeMake(size, size);

所以,对于0 + 1 = ?,同样的逻辑。希望对您有所帮助。

【讨论】:

【参考方案2】:

布局约束有“常数”和“乘数”。您可以根据自己的目的使用乘数

【讨论】:

为了您的目的*

以上是关于如何使用 Xcode 8 上的自动布局调整对象的大小以适应不同的屏幕尺寸?的主要内容,如果未能解决你的问题,请参考以下文章

如何自动调整可可 xcode 的大小?

无法正确地自动调整自动布局和堆栈视图(Swift 3、Xcode 8)

Xcode 自动布局调整大小问题

自定义视图不使用自动布局调整大小

Xcode 8 中的自动调整大小问题

Xcode:调整自动生成的大括号的缩进?