Autolayout 约束优先级 控制隐藏显示

开篇看下动画前的图片显示

Autolayout 约束优先级 控制隐藏显示_第1张图片

在此基础上我们将做红色蓝色逐个删除(或者修改约束)达到黄色向左移动的 效果

首先预览下整体约束的构建

Autolayout 约束优先级 控制隐藏显示_第2张图片
总体约束预览图
  • 首先我们暂且忽略那些虚线的约束
    红色View距左20下0,宽高比为1.0, 高度设为50
    蓝色View黄色View约束和红色View一样

  • 现在我们做虚线的约束

  1. 蓝色View的约束: 距离父视图左为20约束优先级设为750, 即为下图的那条虚线
    Autolayout 约束优先级 控制隐藏显示_第3张图片
    蓝色View的约束图

    Autolayout 约束优先级 控制隐藏显示_第4张图片
    蓝色View距离父视图的虚线视图
  2. 黄色View同样添加距离父视图左侧为20 的虚线约束, 步骤和蓝色View一致约束优先级同样也为250
  3. 再为黄色View设置距离红色View左侧为20 的虚线约束, 约束优先级设置为750
    Autolayout 约束优先级 控制隐藏显示_第5张图片
    黄色视图优先级设置

现在我们就达到了删除红色View或者蓝色View视图整体视图左移效果

如何不删除View设置hidden属性做到左移效果呢?

其实很简单了就,
Autolayout 约束优先级 控制隐藏显示_第6张图片
注意下这里

将左侧20这个约束优先级设置为250
此时你就会发现蓝和黄左移了, 是不是很简单
<>

DEMO 链接

你可能感兴趣的:(Autolayout 约束优先级 控制隐藏显示)