如何使用自动布局为通用应用程序调整 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 视图间距和部分插入。
您可以使用 Autolayout 和 Size 类 来完成。以下是精彩教程的链接:
Apple 表示只需选择场景中的所有视图,然后点击 "Add Missing Constraints" 或 "Reset to Suggested Constraints." 即可解决大部分自动布局问题。首先试一试。 (我现在正在寻找来源,很快就会用它来编辑答案)。
然后,查看有关解决自动布局问题的 Apple 文档。这是一篇简短的文章,将帮助您了解如何调试您正在尝试执行的操作:
如果这些是 UIViews
。然后您可以执行以下操作:
- Select 一次所有的浏览量:
试试这个。如果出现问题请告诉我。
希望对您有所帮助。
我做了一个 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 视图间距和部分插入。
您可以使用 Autolayout 和 Size 类 来完成。以下是精彩教程的链接:
Apple 表示只需选择场景中的所有视图,然后点击 "Add Missing Constraints" 或 "Reset to Suggested Constraints." 即可解决大部分自动布局问题。首先试一试。 (我现在正在寻找来源,很快就会用它来编辑答案)。
然后,查看有关解决自动布局问题的 Apple 文档。这是一篇简短的文章,将帮助您了解如何调试您正在尝试执行的操作:
如果这些是 UIViews
。然后您可以执行以下操作:
- Select 一次所有的浏览量:
试试这个。如果出现问题请告诉我。
希望对您有所帮助。