修改IB中view的frame
来源:互联网 发布:jwt php类库 编辑:程序博客网 时间:2024/05/16 00:59
问题案例:
自定义cell用xib定义,cell子视图中某个label的内容由网络获取,因为这个label加了边框,在获取数据后需要调整宽度(用sizeTofit方法即可)。
实测发现,这个label有时候宽度确实根据内容变化了,边框显示良好,但有时候还是IB里定义的宽度。
原因:
网络异步获取数据,有时候在viewDidAppear之前得到数据,这时候设置label的宽度,之后又会恢复成IB初始设定的宽度;如果获取数据较晚,在viewDidAppear之后调整label宽度,则会正确显示。
想到的解决方案:
1.viewDidAppear方法里修改需要修改的view的frame(可以用一个全局变量记住目标view)
2.IB里不要定义那个view,在得到数据后用代码生成view,设置好frame再加到对应的父视图中。
第一种方法使代码变臃肿,可读性降低,且会有神奇的UI效果:view会动一下(比如修改前宽20,修改后宽100,明显能看到view由窄变宽,甚至修改前隐藏view,修改后再显示,也会有view突然蹦出来的效果)~
第二种方法达到了理想目的。
0 0
- 修改IB中view的frame
- xib创的view修改frame
- iOS用xib自定义view,修改不了frame的问题
- 关于view的frame
- view的frame变化
- 封装frame的修改
- iOS改变View的Frame
- iOS--Xib文件中定义的控件修改frame问题
- [iOS]通过xib自定义cell的时候在awakeFromNib方法里面修改view的frame无效
- js中动态修改frame的src属性,frame自己刷新。。。
- XCode增加的IBOutlet在IB中找不到
- UIView视图在IB中创建的理解
- UIView视图在IB中创建的理解
- Linux中ib开头的一些命令,先收藏一下.
- autolayout 动态的修改Frame
- JQuery修改frame的src
- tableview修改selectedBackgroundView的frame
- NSLayoutConstraint 修改xib中view的高度
- 批处理文件(.bat 文件)中%0、%1等是表示什么
- linux环境配置java web项目之二——安装jdk
- EMV规范 ---ISO7816 T=1协议的时间特性
- PHP microtime 与.Net DateTime的ToFileTime相互转化
- ORACLE 删除一个用户的所有表
- 修改IB中view的frame
- 第1课时 python 入门
- 16124_html中id和name属性的区别
- php 报: 解决Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the f
- GridView异步加载本地图片以及全选/反选删除功能
- Java微信公众号开发
- 学习EventBus的记录
- Git@OSC通过Eclipse生成SSH keys RSA公钥私钥
- listview添加header