iOS Autolayout约束:如何为iPhone和iPad设置两个完全不同尺寸的图像?

时间:2016-07-14 21:58:33

标签: ios autolayout constraints xib

我正在为iPhone和iPad构建应用程序。图像大小需要完全不同(不具有相同的比率)。我怎样才能实现这种情况?这是我可以在xib文件中执行的操作,还是需要使用代码实现此功能?我只想使用一个xib文件,就是它。

2 个答案:

答案 0 :(得分:0)

您可以使用xib文件并将相应的约束链接到您的代码(ctrl + drag从xib文件到swift或objective-C文件的约束。)

然后,您可以在检测到您的应用运行的设备类型后,以编程方式调整这些约束(参见此答案:https://stackoverflow.com/a/10167255/3844377)。

例如,对于宽度约束,您可以执行以下操作:

IBOutlet widthConstraint: NSLayoutConstraint!

func viewDidLoad()
{
   super.viewDidLoad()
   self.adaptConstraintsToDevice()
}

func adaptConstraintsToDevice()
{
   if deviceIsIPad // check link above that code sample to check whether the app is running on an iPad or not
   widthConstraint.constant = 100.5 // put your width value here
}

答案 1 :(得分:0)

这可以使用大小类来完成。 正如我发布了一些屏幕截图

First Image with width-any height-any

在第一张图片中,我采用了具有修复(高度+宽度)约束,顶部间距和Horizo​​taly中心的UIImageView。

Second Image

在第二张图像中选择约束宽度/高度和从左侧菜单单击(+)图标并添加相应的尺寸类别对于ipad(常规宽度,高度 - 任意)[根据要求选择尺寸类]添加宽度和高度这个价值。

Output Image

有关尺寸等级和about size classes designs

的更多信息

希望这会对你有所帮助。感谢