2
2
3
3
4 創(chuàng)建項目
5
1
6 為了要定位 TextView在視圖的位置 我們需要在
定位 Frame 定位完成 (當(dāng)前的視圖 大小和 位置以點為單位 蚂且,以絕對位置呈現(xiàn)在,iphone 一點代表 幾個像素 6p是3個像素 蝉稳,其他是2個像素)
1
運行
7
1
8
2
8 Interface Builder 簡稱 IB (提供了自動調(diào)整大小 和 重新定位的功能 來幫助我們)
我們在故事版中創(chuàng)建的視圖控制器 默認(rèn)允許
9.導(dǎo)致控制的長和 寬 是 600 600個點 (既不像iphone 也不像ipad 尺寸 ,蘋果希望 人們將注意力放在 界面元素之間的關(guān)系上坎缭, 而不是關(guān)注物理真機的 分辨率 和 寬高比上)
10. 我們可以將 TextView.Center.y 設(shè)置為 父類的Center.y 就意味著 TextView總是 顯示在居中的位置怀跛,而不是依賴于在哪個屏幕上運行了窿祥。
還可以 設(shè)置 TextView的寬度 是 父視圖寬度的90% 穗慕,這樣 TextVeiw與父視圖的邊緣各有5%的間隙 ,有了自動布局冈爹,可以很愉快的在任何的設(shè)備和任何方向上完美的排列界面元素涌攻,當(dāng)我們的項目 使用了自動布局后,不能設(shè)置 視圖 的 Frame Center bounds ,Xcode強制用 約束 代替 之前的 位置 和大小 信息频伤。
11 首先 我們有一個
-ViewController(包含IBOutlet) 如下圖
我們將會在 InterfaceBuilder 中來創(chuàng)建這些元素與之關(guān)聯(lián)恳谎,包含了 TableView(Data Source)倆個協(xié)議方法,還有在是視圖中添加一個表格視圖(TableView)
-源文件 HorizaontailtemList.swift (這個類是滾動視圖的子類,用于顯示滾動視圖列表)
導(dǎo)航欄
左側(cè)大綱導(dǎo)引視圖
工作區(qū)
對象庫找到 UIView
拖拽到控制器的視圖上面
更改屬性
調(diào)整視圖大小 使之更像導(dǎo)航欄
注意 我們應(yīng)該讓視圖邊緣與 控制器的 top left right 相重合 因痛,接下來我們需要創(chuàng)建約束了
- 選擇當(dāng)前視圖 婚苹,點擊右下角
此時 添加了 三個約束到 視圖里面 ,所創(chuàng)建的每一個約束都與 一個等于表達(dá)式 相關(guān)鸵膏,比如說 頂部的約束
接著 膊升,為這個View 高度 添加一個 約束
此時我們已將為這個View 添加了 4個約束了,這四個約束是否可以描述這個 View的位置和 大小
如果我們想更改 高度約束 怎么做呢 谭企,如何編輯已經(jīng)創(chuàng)建好的高度約束呢廓译?
然后在這里面找到 為 View創(chuàng)建好的4個約束,點擊Edit ,可修改
運行結(jié)果
添加Lable 到 視圖上
現(xiàn)在 必須要滿足 Label 在 View 中 居中顯示
除非 位置 是 View的中央 债查,否則 會 看到 橘黃色的指示線 和 虛線
當(dāng)我們在 IB 中 設(shè)置用戶界面的時候非区,拖拽的視圖 可能會 破壞 約束的方程式
如果 將Label 放在 水平 和 垂直 居中 ,IB會顯示藍(lán)色的 指示線 表示Label的水平居中 和 垂直居中 盹廷。
如果出現(xiàn)了橘黃色征绸,則說明 水平 和 垂直居中被破壞了
在IB中 ,橘黃色的實線代表的是 當(dāng)前這個元素的實際位置俄占, 而虛線代表應(yīng)該所處的位置管怠。
要想修復(fù)這個問題,
在這里解決 關(guān)于 約束沖突問題
里面有很多選項颠放,我們只希望 讓 元素 移動 到 約束的位置上
這樣 已將將 元素對象 放到 適合 的位置上了