美文网首页
使用Frame进行界面适配

使用Frame进行界面适配

作者: Tinchi_To | 来源:发表于2016-07-22 01:21 被阅读0次

    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。

    相关文章

      网友评论

          本文标题:使用Frame进行界面适配

          本文链接:https://www.haomeiwen.com/subject/chxijttx.html