在项目开发中,有时会碰到需要根据服务器返回的数据,来决定界面上显示的某个控件是否需要隐藏的问题。隐藏后,布局要保持紧凑,这就需要考虑一种策略来更好的处理这种情况。
一种策略是,对每种情况添加一套约束方案,然后在APP运行时,根据数据来动态调整约束的优先级。
实例代码:
-(void)HideSept:(BOOL)isHidden
{
[self.sept_go_label setHidden:isHidden];
[self.sept_des_label setHidden:isHidden];
[self.sept_map_label setHidden:isHidden];
[self.sep2 setHidden:isHidden];
self.maplabel_top_constraint.priority= isHidden ?1000:250;
}
示意图:
不隐藏:
参考链接1:https://chengkang.me/2016/03/20/AutoLayout:constraint%20priority%20约束优先级(九宫格续,一个更优方案)
参考链接2:http://www.10tiao.com/html/330/201711/2653579435/2.html
网友评论