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

2016-08-06  本文已影响72人  小小Q吖

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
上一篇 下一篇

猜你喜欢

热点阅读