美文网首页
ios之UI布局篇

ios之UI布局篇

作者: 没有梦想_何必远方 | 来源:发表于2018-07-02 18:16 被阅读30次

    UI布局分为如下几种
    1.frame

    1. Autolayout VFL(Visual Format Language)
      3.SB
      4.Masonry/Snapkit 链式语法
      5.Yoga
    2. SizeClass

    Autolayout里有两个词,约束,参照
    要想显示一个控件,需要两个东西,位置,尺寸
    添加约束不宜过多,当添加的约束足以表达该控件的位置与尺寸,就足够了
    约束就是对控件的大小或者位置进行约束,参照就是以某个控件的位置进行约束,其实这两者没有明确的分别,它们都可以对控件的位置与尺寸起到作用。
    所有控件,都逃不开位置,尺寸,Autolayout就是拿来干这个用的,所以我后面的例子都以UIView为例

    Masonry必须要把控价添加到父视图以后才可以进行布局,不然会crash
    内存管理,约束的block里面有时候会引起隐式内存泄露
    偶尔会遇见重复约束的问题,查看控制台log,进行调整修改
    重点在于,给出的约束一定要能计算出控件的位置和大小,缺一不可
    有时候给出的约束可能没有明确指出某个约束的值,但是可以通过给定条件计算出来,也是可以的,比如下面这个例子,做一个水平三等分

    记住一个快捷键command + option + ‘=‘(update constraint constant)

    SB/xib多人开发的问题

    SafeArea
    在Xcode 7之前,storyboard在团队开发的时候非常不友好,因为一个storyboard文件有很多个界面,多人开发的话,就需要多个人都打开这个storyboard文件,而在Xcode 7之前你只要点开storyboard文件,虽然你啥都没有做,但是storyboard文件里面出现一个Modify标记,然后你提交代码的时候会conflict,很多团队因为这个问题放弃storyboard,转而使用xib,甚至连xib都不用了,直接手撸.

    只从Xcode 7以后,苹果针对这个问题推出了storyboard reference来解决storyboard的多人开发问题

    storyboard reference的功能就是拆分storyboard,把storyboard拆分成一个个小模块,这样每个开发人员对应一个模块,各自分离,互不相干

    代码加载SB,需要再SB中设置identity usestoryboard id

    有很多人说在维护xib/storyboard开发的项目的时候有些困难,找不到view关系,看不到代码等,其实我想说,那是因为你真的没有用心的去学习xib/storyboard,如果作为维护者的你也对xib/storyboard非常熟悉,你会发现维护xib/storyboard开发的项目会比纯代码的相对轻松的,至少你不需要在1000+的代码中去找某个button添加的action;

    相关文章

      网友评论

          本文标题:ios之UI布局篇

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