使用Frame进行界面适配

setFrame是最经典的方法,在iOS中没有给UI控件设置frame控件就不能显示,有时的确没有设置frame但就是显示了是因为有某些控件会自动计算和设置frame


首先,最简单的就是直接的使用initWithFrame:进行控件的初始化同时给frame属性赋值。这个方法用起来简便,适合于固定尺寸的简单控件,但是假若UITextField的字数行数不固定,需要从远程加载,这个方法就不好用了。

所以用的最多的还是setFrame方法,配合上计算控件size的方法使用效果更佳。

我个人喜欢使用给控件赋值的同时setFrame的方法,实现的技巧就是新建一个类来保存对应控件的数据模型以及控件frame,重写setModel,给控件赋值的时候同时给控件赋上frame。如果控件里面有子控件,子控件里还有子控件,这种情况也是很常见。举个例子

假设数据模型叫model

view有子控件subview1和subview2

子控件里面还有其他杂七杂八的子控件

这时候需要新建viewFrame、subview1Frame、subview2Frame类

viewFrame中有subview1Frame和subview2Frame成员,每个类中都包含model成员,

这时候重写这三个类的setModel方法,model传给viewFrame时候viewFrame传给两个subviewFrame,subviewFrame中计算并保存子控件大小,然后计算自身对应的subview的大小返回给viewFrame,viewFrame计算view的大小。

最后改写view的setViewFrame,对应subview改写setSubviewFrame方法,给view和subview以及subview里面的控件赋值和setFrame。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,271评论 4 61
  • 2017.02.22 可以练习,每当这个时候,脑袋就犯困,我这脑袋真是神奇呀,一说让你做事情,你就犯困,你可不要太...
    Carden阅读 1,398评论 0 1
  • i一‘【训练片段4】P68~72 姓名: 柴虹 导师:牛慧芳 【I理解部分】: 本片段针对如何包装吸引人注意的主...
    虹语阅读 284评论 0 0
  • 恋爱关系中你愿意被对方宠着,还是宠着对方?还是大多数的人认为男人就应该宠着女人,这是他们作为男人与生俱来的本能,也...
    不要命的妞阅读 407评论 2 0