Swift:如何以编程方式更改取决于iPhone的标签/视图大小(例如,iPhone SE,iPhone 8)?

问题描述:

是否可以通过编程方式更改标签大小或视图大小,具体取决于用户使用的是哪个iPhone?Swift:如何以编程方式更改取决于iPhone的标签/视图大小(例如,iPhone SE,iPhone 8)?

因此,例如,我可以在代码中检测使用哪个手机,并根据使用哪个手机更改视图或标签的宽度(即在iPhone 8上较大而在iPhone SE上较小)?

您想查看的概念叫Auto Layout

你应该在代码中使用AutoLayout。

例如: 在xib/storybaords中,如果将左,右,上,下约束条件设置为零,视图将始终保留在所有四条边上。

参考链接: https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/ViewswithIntrinsicContentSize.html

好了,所有其他的答案是正确的,你需要根据自动版式,使您的UI组件动态贴的代码。但是,如果您想知道设备大小,就像您在问题中提到的一样,那么请查看屏幕大小属性,然后相应地计算您的UI组件大小。您可以将设备屏幕大小设为:

let screenSize = UIScreen.main.bounds 
let screenWidth = screenSize.width 
let screenHeight = screenSize.height 

现在,根据屏幕的长度或宽度,您可以决定UI组件的大小。

干杯, 拉胡尔