如何添加不同的约束取决于iPhone屏幕大小?

问题描述:

这是我的xib文件,被视为iPhone6/iPhone7,看起来不错。如何添加不同的约束取决于iPhone屏幕大小?

enter image description here

,但如果我把它变成iPhoneSE,变得异常。

enter image description here

Becasue空间空白不改变设备改变时,我无法改变空间约束适应装置而不代码。

+0

。 [阅读此](http://www.appcoda.com/auto-layout-guide/)指南获取更多关于你如何做到这一点的信息。 –

+0

您想要灵活地查看哪些视图中的空白? – PGDev

+0

您是否尝试将视图宽度和高度设置为与VC视图成比例? – Bluewings

您需要为支持所有像这样的设备制作常量。

var SCREEN_WIDTH = UIScreen.main.bounds.size.width 
var SCREEN_HEIGHT = UIScreen.main.bounds.size.height 
var BASE_SCREEN_HEIGHT:CGFloat = 667.0 
var SCREEN_MAX_LENGTH = max(SCREEN_WIDTH, SCREEN_HEIGHT) 
var ASPECT_RATIO_RESPECT_OF_7 = SCREEN_MAX_LENGTH/BASE_SCREEN_HEIGHT 

我想你的基地布局是iPhone 7是你的设计驻留在iPhone 7布局。

现在创建一个函数,这将有助于根据设备更新您的约束。喜欢这个。

func updateConstraint() { 
    topConstantOfYourLabel.constant = 10*ASPECT_RATIO_RESPECT_OF_7 
} 

在viewDidLoad中调用此方法,您的布局就好了。

注: 对于您需要根据您的needs.I一些变化的景观模式,假设你只支持肖像模式。

+0

这段代码应该可以工作,我打算使用代码来解决,但我想找到一种方法来实现它只是通过IBoutlet –

尝试以下限制:

enter image description here

输出:iPhone 6/7

enter image description here

输出:iPhone SE

enter image description here

更清楚地指定您的要求,以便我可以帮助您更多。

你不应该添加不同的约束取决于iPhone的屏幕大小!因为限制与任何屏幕尺寸完美的作品

只是做一个简单的解决在布局约束:

问题: 那么什么,我看到你有UIScrollView的高度问题,看来你设定一个固定的 首先你需要删除高度限制为UIScrollView的 第二只需添加一个高度约束的UIScrollView等于父屏幕的高度,并给它一个PERC:对UIScrollView的

解决方案高度约束entage

注: 如何把百分比约束 - >突出的约束,然后从属性检查器中有一个名为乘数务必将您的约束权的属性需要值0.0〜1

+0

UIScrollView的高度必须仅依赖于内部的ContentView。所以给它一个明确的高度是错误的想法。 – BootMaker

+0

对不起,我没有提及内容视图的大小,我们讨论容器大小,完全给容器视图明确的高度并不影响它的内容视图的大小 –