Xib隐藏控件以及frame(位置)改变
来源:互联网 发布:sql增加数据 编辑:程序博客网 时间:2024/06/09 18:48
最近在学xib, 其中一些基本的已经掌握,但还不够熟练:如scrollview的xib约束;
xib创建控件需要用到约束(autolayout),autolayout进行了封装就是我们常见的masonry;
当你使用纯frame进行布局的时候,是确定一个控件的x,y,width,height; 那在使用xib的时候也是如此,不论你怎么进行约束,你确定的其实还是这些值,需要让xib知道控件的位置; 基于这个思想,再去进行约束的时候,思路会清晰很多.
之前遇到一个需求: 需要根据不同情况隐藏和显示一个控件,在改变的同时,会导致其它控件的改变;用纯frame计算需要计算这些控件的frame; 用xib则需要改变其constraint;
如上图:我想隐藏农行优惠这一行的文字,"还需支付"需要往上移动; 如果用frame计算,计算量不算大,只是比较繁琐; 如果用xib,则只需这样:
if (change) {
_abcTitleLab.hidden =YES;
_abcTitleHeight.constant =0;
_abcPriceLab.hidden =YES;
_accPriceHeight.constant =0;
}else{
_abcTitleLab.hidden =NO;
_abcTitleHeight.constant =20;
_abcPriceLab.hidden =NO;
_accPriceHeight.constant =20;
}
我这边一行显示 用了两个label,所以需要对四个控件进行操作;效果是这样的:
在这个过程中,我隐藏了控件, 但它只是隐藏了,本身的高度还是有的,所以需要改变控件高度的约束;
由于下一个控件的约束是与此控件相关联的,间距为0;
当控件高度约束改为0,下个控件的top约束与此控件的约束仍为0;
所以控件会自动上移;
不用计算frame,只需要改变其中的一个约束,剩余的自动完成;
减少了计算量和代码量;
写的可能有点混乱. xib还在学习中,以后也会更新xib的学习知识;
记录防止遗忘;
- Xib隐藏控件以及frame(位置)改变
- xib 布局 代码改变frame
- xib自定义cell,代码修改cell里控件frame加载后不生效,下一次reloaddata改变?
- xib创建cell后想要代码改变cell中控件的frame
- 获取xib中控件的frame
- 设置xib创建的控件的frame
- 改变控件label的Frame
- WPF 改变控件位置
- xib,约束,监听键盘时间改变frame失败
- iOS xib建的控件改变坐标
- iOS xib中改变控件形态
- Xib中的控件无法调整其位置
- Xib中的控件无法调整其位置
- 修改xib里的控件位置大小
- iOS--Xib文件中定义的控件修改frame问题
- 动态改变控件的位置
- vc改变控件的位置
- 改变控件大小和位置
- The order of a Tree HDU
- 路径压缩 递归 与非递归版本
- 007 UseGCLogFileRotation NumberOfGCLogFiles GCLogFileSize
- C#中bin与obj
- AIDL使用入门, 客户端通过AIDL与服务端通信
- Xib隐藏控件以及frame(位置)改变
- 1806:词典( 3.9数据结构之C++STL)
- 初识nodejs12
- Spark2.2内核剖析
- Android AndroidStudio 项目结构
- Linux权限管理(基本权限、默认权限、
- Cookie与Session
- imagesLoaded-检测图片是否正确加载的js插件
- UVA 101 The Blocks Problem【vector】