美文网首页
iOS界面动画教程之自动布局(Study)

iOS界面动画教程之自动布局(Study)

作者: 小小Q吖 | 来源:发表于2016-08-06 14:57 被阅读72次

    2 2

    3 3

    4 创建项目

    1

    5 1

    6 为了要定位 TextView在视图的位置 我们需要在

    1

    定位 Frame 定位完成 (当前的视图 大小和 位置以点为单位 ,以绝对位置呈现在,iphone 一点代表 几个像素 6p是3个像素 ,其他是2个像素)

    1

    运行

    7 1

    8 2

    8 Interface Builder 简称 IB (提供了自动调整大小 和 重新定位的功能 来帮助我们)

    我们在故事版中创建的视图控制器 默认允许


    1

    9.导致控制的长和 宽 是 600 600个点 (既不像iphone 也不像ipad 尺寸 ,苹果希望 人们将注意力放在 界面元素之间的关系上, 而不是关注物理真机的 分辨率 和 宽高比上)

    1

    10. 我们可以将 TextView.Center.y 设置为 父类的Center.y 就意味着 TextView总是 显示在居中的位置,而不是依赖于在哪个屏幕上运行了。

    还可以 设置 TextView的宽度 是 父视图宽度的90% ,这样 TextVeiw与父视图的边缘各有5%的间隙 ,有了自动布局,可以很愉快的在任何的设备和任何方向上完美的排列界面元素,当我们的项目 使用了自动布局后,不能设置 视图 的 Frame Center bounds ,Xcode强制用 约束 代替 之前的 位置 和大小 信息。

    11 首先 我们有一个

    -ViewController(包含IBOutlet) 如下图

    我们将会在 InterfaceBuilder 中来创建这些元素与之关联,包含了 TableView(Data Source)俩个协议方法,还有在是视图中添加一个表格视图(TableView)

    1

    -源文件 HorizaontailtemList.swift (这个类是滚动视图的子类,用于显示滚动视图列表)

    1

    导航栏


    1

    左侧大纲导引视图


    1

    工作区


    1

    对象库找到 UIView


    1

    拖拽到控制器的视图上面


    1

    更改属性


    1

    调整视图大小 使之更像导航栏


    1

    注意 我们应该让视图边缘与 控制器的 top left right 相重合 ,接下来我们需要创建约束了

    • 选择当前视图 ,点击右下角
    1 1

    此时 添加了 三个约束到 视图里面 ,所创建的每一个约束都与 一个等于表达式 相关,比如说 顶部的约束


    当前这个View的top = 1倍 的 俯视图的top + 当前的常量 (0)

    接着 ,为这个View 高度 添加一个 约束


    1

    此时我们已将为这个View 添加了 4个约束了,这四个约束是否可以描述这个 View的位置和 大小

    如果我们想更改 高度约束 怎么做呢 ,如何编辑已经创建好的高度约束呢?


    1

    然后在这里面找到 为 View创建好的4个约束,点击Edit ,可修改

    运行结果

    1 2

    添加Lable 到 视图上


    1 字号设置为 21 Alignment设置为 居中 1

    现在 必须要满足 Label 在 View 中 居中显示

    1 1 2

    除非 位置 是 View的中央 ,否则 会 看到 橘黄色的指示线 和 虚线

    当我们在 IB 中 设置用户界面的时候,拖拽的视图 可能会 破坏 约束的方程式

    如果 将Label 放在 水平 和 垂直 居中 ,IB会显示蓝色的 指示线 表示Label的水平居中 和 垂直居中 。

    如果出现了橘黄色,则说明 水平 和 垂直居中被破坏了

    在IB中 ,橘黄色的实线代表的是 当前这个元素的实际位置, 而虚线代表应该所处的位置。

    要想修复这个问题,

    在这里解决 关于 约束冲突问题

    1

    里面有很多选项,我们只希望 让 元素 移动 到 约束的位置上


    1 1

    这样 已将将 元素对象 放到 适合 的位置上了

    1

    相关文章

      网友评论

          本文标题:iOS界面动画教程之自动布局(Study)

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