美文网首页
QHP_01屏幕适配

QHP_01屏幕适配

作者: 风信子的梦想成真 | 来源:发表于2016-04-18 22:22 被阅读21次

    屏幕适配的发展:

    用Autoresizing的时候对应的纯代码:

    如果blueView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin则说明是左边的约束伸缩,系统自认为对blueView进行了右边的约束(也就是说对blueView的右边进行了约束)

    AutoLayout的使用:

    使用Autolayout时对label设置约束需要注意的地方:在我们平常使用label的时候会出现这样的情况,

    我们在对label进行约束的时候只需要约束上、左、宽,在进行约束的时候系统会根据labe的内容来自动得出labe的高,如图所示

    还有一个问题就是,当label的文字非常少的时候怎么让一行的宽度变得刚好是文字那么宽,                                  

    这个做法就是在设置宽度的时候,然后选择less than or equal,如图

    Autolayout用纯代码实现的

    //在写添加约束前要加上一句话是为了告诉系统不要将AutoresizingMask转化为Autolayout的约束blueView.translatesAutoresizingMaskIntoConstraints = NO;

    对应的参数是:

    // view1是子控件 view2是父控件

    参数就是view1.attr1 = (relation可以是>=、=、<=现在写的=是例子而已)view2.attr2 * multipliter + c要注意的地方是[self.view addSubView:blueView]要写在加约束前,因为在对左右加约束的时候会用到父控件,如果此行代码写在加约束后面,找不到父控件程序会出现错误。

    Autolayout纯代码的另一种写法Autolayut-VFL(Visual Format Language可视化格式语言)VFL例子:(H表示的是水平方向,V表示的是竖直方向)

    一般简代码

    简化代码注意所做标记与上面的区别

    mertrics和mertrics2写法起到的作用是一样的,一般代码和简化代码运行后显示的效果是

    注意的地方是:采用VFL时,有时候对控件进行布局的时候要结合下面这个方法

    第三方Masonry的纯代码布局

    用Masonry来对控件进行约束的三个方法

    约束类型

    在对指定控件的高或宽进行约束的时候

    注意标记的地方,两种方法都是可以的,这里说下equalTo和mas_equalTo的区别

    对下面的图片进行解读,标记的地方写成self.view系统会自动默认为(self.view.mas_right) 用UIEdgeInsetsMake方法的时候,里面的值都是正数,可以理解为视图是内嵌到里面的,和offset方法算数值的时候不一样。

    下面在头文件引入宏,在用masonry的时候不用担心什么时候用equalTo和mas_equalTo

    可以对控件这样约束,注意调用的方法不一样了

    加上上面的宏,还会出现一个问题是

    这时候在加上另外一个宏,(自动包装)

    此时全完可以全部用eauqlTo了,如下图所示

    在开发的过程中,把两个宏导入到头文件,在对控件进行约束的时候就不用考虑equalTo和mas_equalTo的问题了,导入到两个宏的头文件时,会调用下面的方法

    相关文章

      网友评论

          本文标题:QHP_01屏幕适配

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