多个控件横向或纵向排列用的时候,根据业务需求调整UI间距问题。

来源:互联网 发布:linux控制台切换 编辑:程序博客网 时间:2024/05/17 13:45

开发中,经常碰到多个控件横向或纵向排列的时候,根据业务需求调整UI的问题。

业务场景如下:

比如横向从左到右依次有ABC三个控件,B控件可能根据业务场景需求会出现和隐藏,那么问题来了,当B出现的时候,C的约束是怎样的?当B不出现的时候,C的约束是怎么样的?怎么样来解决B出现和隐藏导致的C的约束问题呢?

解决方案:

1、设置C到A的横向间距约束,优先级为900,同事设置C到B的横向约束,优先级为1000,那么在B出现的时候,高优先的优先,C的横向位置以到B的约束为准。

2、当B不出现的时候,直接把B隐藏还不行,因为B还占用了屏幕空间,C到B 的约束还是有效的、优先的,alpha设置为0 也不行,解决办法是把B拖一个IBOutlet,然后在代码中根据业务需求,直接调用[B removeFromSuperView]就解决了问题,原因是B控件已经不存在了,那么C到B的约束就没了,那么B到A 的约束才会起作用。

0 0