欢迎光临
我们一直在努力

Auto Layout对齐矩形

有的界面有多个view,垂直排列,有一定间隔,但是当中间某一个view消失时,采用普通约束就会导致,中间的间隔就变成2个间隔加一起了,

正常情况如下图:

如果简单的设置第二个label.text=nil,则出现如下情况

可能你会想到在代码里判断是否为空,如果为空,修改约束,这样你不但得判断还得拖约束属性,如果有多个控件那就得重复n次,好在系统有个方法可以帮我们轻松解决这个问题,也就是说添加view时设置的约束间隔为0,实际间隔交给以下方法来控制

- (UIEdgeInsets)alignmentRectInsets {

? ? return UIEdgeInsetsMake(.0, .0, -self.alignmentInsetY, .0);

}

我们可以自定义个view实现这个方法,修改bottom,但是得为负值,如果是正值,frame就会变小,负值才会变大,所以我们就可以在自定义类里加个属性,设置alignmentInsetY,轻松实现

    self.label1.alignmentInsetY=20;
    self.label2.alignmentInsetY=30;
    self.label3.alignmentInsetY=40;
? ? self.label1.text=@"粉红色断开附近发生的航空就返回发生的航空就发生的航空发生的客户发多少科技发生的开发就发生的航空房间号发生的航空发";
? ? self.label2.text=@"粉红色断开附近发生的航空就返回发生的航空就发生的航空发生的客户发多少科技发生的开发就发生的航空房间号发生的航空发";
? ? self.label2.text=nil;
? ? self.label3.text=@"粉红色断开附近发生的航空就返回发生的航空就发生的航空发生的客户发多少科技发生的开发就发生的航空房间号发生的航空发";

 

未经允许不得转载:松哥博客 » Auto Layout对齐矩形
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址