xcode用xib自动布局(适配小屏手机)

1,697 阅读1分钟

长屏中正常显示

小屏时,底部控件则会被寄出屏幕

解决方案:

调整为:

调整为:

调整为:

原理为:屏幕尺寸改变之后,使控件全部显示在屏幕中,则需要动态调整两个控件间距,则在这两个控件之间添加两个约束垂直间距约束一个为接受的最小间距另一个为屏幕控件充足时的间距;而且屏幕充足时的间距优先值应该低一些;并且最小间距要使全部控件间的垂直约束没有冲突。

可以在小屏幕时动态调整多组两个控件的间距,需要给每一组的两个控件的充足时间距设置不同的优先级,这样,在屏幕总体高度不能满足所有控件之间的垂直约束时,优先打破优先级最小的一组控件的约束,减少他们之间的距离,直至最小间距;如果到达该组控件最小间距后,还是不能满足约束,则继续打破另一组优先级低的控件约束,调整至最小间距,如此循环,继续调整直至屏幕高度满足全部控件间的约束条件,如果还是不能解决约束冲突,则xib会报错,需要继续寻找可调节的一组控件间距,为其添加两个约束。