如何在 iphone5 和 iphone6 上更改 UIImageView 的大小?
Posted
技术标签:
【中文标题】如何在 iphone5 和 iphone6 上更改 UIImageView 的大小?【英文标题】:How to change size of UIImageView on iphone5 & iphone6? 【发布时间】:2015-04-11 12:08:35 【问题描述】:我有一张图片要显示在我的应用中。 我想将 iPhone6 上的图像大小设置为 169pt,而在 iPhone5 上将其设置为 120pt。 我知道 ios8 上有一个尺码等级。但是我怎样才能在它上面为不同的 iPhone 设置不同的尺寸。 我只能区分尺寸等级的 iPad 和 iPhone 纵向/横向,无法区分 iPhone 5 和 iPhone6
【问题讨论】:
【参考方案1】:您考虑过使用 AutoLayout 吗?这是一个基于约束解析器的布局系统,可以让您的视图响应,并且它是 Apple 从 iOS7 开始的首选方法。文档在这里:
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/Introduction/Introduction.html
这里有一个很棒的教程:
http://www.raywenderlich.com/50317/beginning-auto-layout-tutorial-in-ios-7-part-1
AutoLayout 是一种更强大的方法,即使 Apple 添加了新的 UI 惯用语和尺寸(如 Apple Watch),也可以让您的视图保持响应。随着要支持的尺寸数量的增加,命令式尺寸调整代码将很快变得脆弱。
【讨论】:
【参考方案2】:刚刚从我的一个项目中提取了这个。它显示了我用于计算用户正在使用什么设备的逻辑
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_IPHONE_5 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0)
#define IS_IPHONE_6 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0)
#define IS_IPHONE_6PLUS (IS_IPHONE && [[UIScreen mainScreen] nativeScale] == 3.0f)
#define IS_IPHONE_6_PLUS (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 736.0)
#define IS_RETINA ([[UIScreen mainScreen] scale] == 2.0)
【讨论】:
以上是关于如何在 iphone5 和 iphone6 上更改 UIImageView 的大小?的主要内容,如果未能解决你的问题,请参考以下文章