如何使用自动布局为通用应用程序调整 UIView 的大小

How to Resize UIView for universal application using Autolayout

我做了一个 UIView,里面嵌入了 UIView。我使用约束来获得像样的 UIView,但它还没有按照我想要的方式工作,即使结果还可以。

我想得到与 iPhone 4.7 英寸到 iPhone 5.5 英寸和 4 英寸相同的结果。

为此,我想我需要调整 blue UIViews 的大小,但我不知道如何让它们从 storyboard 自动调整大小,也不知道如何以编程方式调整。我记得很久以前,我为一个 Android 申请做了这件事,这很简单,我只需要给一个 % bigger or lower.

有没有办法用 iOS 做到这一点?

我相信 ismail 的评论是正确的,大小 类 是在情节提要中执行此操作的正确方法。

如果您正在寻找更程序化的解决方案,您可以在 UICollectionViewDelegateFlowLayout 上实现 sizeForItemAtIndexPath 方法,例如,您可以计算每个设备的宽度和 return使用提到的方法为每个单元格设置正确的比例。基本示例:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
    return CGSize(width:10, height:10)
}

请务必在计算宽度和高度时考虑 collection 视图间距和部分插入。

您可以使用 AutolayoutSize 类 来完成。以下是精彩教程的链接:

Autolayouts

Size Classes

Apple 表示只需选择场景中的所有视图,然后点击 "Add Missing Constraints" 或 "Reset to Suggested Constraints." 即可解决大部分自动布局问题。首先试一试。 (我现在正在寻找来源,很快就会用它来编辑答案)。

然后,查看有关解决自动布局问题的 Apple 文档。这是一篇简短的文章,将帮助您了解如何调试您正在尝试执行的操作:

https://developer.apple.com/library/ios/recipes/xcode_help-IB_auto_layout/chapters/ResolvinganItemsLayoutIssues.html

如果这些是 UIViews。然后您可以执行以下操作:

  1. Select 一次所有的浏览量:

试试这个。如果出现问题请告诉我。

希望对您有所帮助。