2
3
4 创建项目
5
6 为了要定位 TextView在视图的位置 我们需要在
定位 Frame 定位完成 (当前的视图 大小和 位置以点为单位 ,以绝对位置呈现在,iphone 一点代表 几个像素 6p是3个像素 ,其他是2个像素)
运行
7
8
8 Interface Builder 简称 IB (提供了自动调整大小 和 重新定位的功能 来帮助我们)
我们在故事版中创建的视图控制器 默认允许
9.导致控制的长和 宽 是 600 600个点 (既不像iphone 也不像ipad 尺寸 ,苹果希望 人们将注意力放在 界面元素之间的关系上, 而不是关注物理真机的 分辨率 和 宽高比上)
10. 我们可以将 TextView.Center.y 设置为 父类的Center.y 就意味着 TextView总是 显示在居中的位置,而不是依赖于在哪个屏幕上运行了。
还可以 设置 TextView的宽度 是 父视图宽度的90% ,这样 TextVeiw与父视图的边缘各有5%的间隙 ,有了自动布局,可以很愉快的在任何的设备和任何方向上完美的排列界面元素,当我们的项目 使用了自动布局后,不能设置 视图 的 Frame Center bounds ,Xcode强制用 约束 代替 之前的 位置 和大小 信息。
11 首先 我们有一个
-ViewController(包含IBOutlet) 如下图
我们将会在 InterfaceBuilder 中来创建这些元素与之关联,包含了 TableView(Data Source)俩个协议方法,还有在是视图中添加一个表格视图(TableView)
-源文件 HorizaontailtemList.swift (这个类是滚动视图的子类,用于显示滚动视图列表)
导航栏
左侧大纲导引视图
工作区
对象库找到 UIView
拖拽到控制器的视图上面
更改属性
调整视图大小 使之更像导航栏
注意 我们应该让视图边缘与 控制器的 top left right 相重合 ,接下来我们需要创建约束了
- 选择当前视图 ,点击右下角
此时 添加了 三个约束到 视图里面 ,所创建的每一个约束都与 一个等于表达式 相关,比如说 顶部的约束
接着 ,为这个View 高度 添加一个 约束
此时我们已将为这个View 添加了 4个约束了,这四个约束是否可以描述这个 View的位置和 大小
如果我们想更改 高度约束 怎么做呢 ,如何编辑已经创建好的高度约束呢?
然后在这里面找到 为 View创建好的4个约束,点击Edit ,可修改
运行结果
添加Lable 到 视图上
现在 必须要满足 Label 在 View 中 居中显示
除非 位置 是 View的中央 ,否则 会 看到 橘黄色的指示线 和 虚线
当我们在 IB 中 设置用户界面的时候,拖拽的视图 可能会 破坏 约束的方程式
如果 将Label 放在 水平 和 垂直 居中 ,IB会显示蓝色的 指示线 表示Label的水平居中 和 垂直居中 。
如果出现了橘黄色,则说明 水平 和 垂直居中被破坏了
在IB中 ,橘黄色的实线代表的是 当前这个元素的实际位置, 而虚线代表应该所处的位置。
要想修复这个问题,
在这里解决 关于 约束冲突问题
里面有很多选项,我们只希望 让 元素 移动 到 约束的位置上
这样 已将将 元素对象 放到 适合 的位置上了