[Swift通天遁地]6、智能佈局-(6)其餘幾種約束關係:父視圖/Corner/Edge/AnchorAndFillEdge

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-kinlsmfl-ma.html 
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

目錄:[Swift]通天遁地Swiftios

本文將演示其餘幾種約束關係。git

首先確保在項目中已經安裝了所需的第三方庫。github

點擊【Podfile】,查看安裝配置文件。swift

1 platform :ios, ‘12.02 use_frameworks!
3 
4 target 'DemoApp' do
5     source 'https://github.com/CocoaPods/Specs.git'
6     pod 'Neon'
7 end

根據配置文件中的相關配置,安裝第三方庫。數組

而後點擊打開【DemoApp.xcworkspace】項目文件。微信

在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】ide

  1 import UIKit
  2 //在當前的類文件中,引入已經安裝的第三方類庫
  3 import Neon
  4 
  5 class ViewController: UIViewController {
  6     
  7     override func viewDidLoad() {
  8         super.viewDidLoad()
  9         // Do any additional setup after loading the view, typically from a nib.
 10         //父視圖的填充約束
 11         fillingSuperview()
 12         //用於將視圖對象,約束在父視圖的某個角落
 13         cornerExample()
 14         //用於將視圖對象,約束在父視圖的四個邊緣
 15         edgeExample()
 16         //用於將視圖對象,約束並填充父視圖的邊緣
 17         fillingAnEdge()
 18     }
 19     
 20     //添加一個方法
 21     //用於父視圖的填充約束
 22     func fillingSuperview()
 23     {
 24         //初始化一個顯示區域
 25         let frame = CGRect(x: 0, y: 0, width: 100, height: 100)
 26         //建立一個指定顯示區域的視圖對象
 27         let neonView = UIView(frame: frame)
 28         //設置視圖的背景顏色爲橙色
 29         neonView.backgroundColor = UIColor.orange
 30         //將視圖對象添加到根視圖
 31         self.view.addSubview(neonView)
 32         
 33         //初始化一個浮點常量,做爲視圖的間距
 34         let padding = CGFloat(40)
 35         //將視圖對象填充父視圖,
 36         //並設置父子視圖在填充方向上的間距
 37         neonView.fillSuperview(left: padding, right: padding, top: padding, bottom: padding)
 38     }
 39     
 40     //添加一個方法
 41     //用於將視圖對象,約束在父視圖的某個角落
 42     func cornerExample()
 43     {
 44         //初始化一個顏色數組,做爲四個視圖的背景顏色
 45         let colors = [UIColor.purple, UIColor.green, UIColor.orange, UIColor.blue]
 46         //初始化一個角落位置數組,做爲四個數組在父視圖中的約束位置
 47         let corners = [Corner.topLeft, Corner.topRight, Corner.bottomLeft, Corner.bottomRight]
 48         
 49         //初始化兩個浮點類型的數字,
 50         //表示間距和尺寸
 51         let pad = CGFloat(20)
 52         let size = CGFloat(100)
 53         //經過一個四次的循環語句,依次建立四個視圖對象
 54         for i in 0...3
 55         {
 56             //初始化一個視圖對象
 57             let view = UIView()
 58             //根據循環的索引,
 59             //從顏色數組中,得到對應的元素,做爲視圖的背景顏色            
 60             view.backgroundColor = colors[i]
 61             //並將視圖對象添加到父視圖
 62             self.view.addSubview(view)
 63             
 64             //根據循環的索引,從約束數組中,得到對應的元素。
 65             //做爲視圖對象的角落約束,
 66             //將視圖對象約束在父視圖的指定位置,
 67             //並設置父子視圖在四個方向上的間距。
 68             view.anchorInCorner(corners[i], xPad: pad, yPad: pad, width: size, height: size)
 69         }
 70     }
 71     
 72     //添加一個方法
 73     //用於將視圖對象,約束在父視圖的四個邊緣
 74     func edgeExample()
 75     {
 76         //初始化一個指定顯示區域的視圖對象,
 77         //做爲其餘自定義視圖對象的父視圖。
 78         let viewParent = UIView(frame: CGRect(x: 0, y: 80, width: 320, height: 320))
 79         //設置視圖對象的背景顏色爲黑色
 80         viewParent.backgroundColor = UIColor.black
 81         //將視圖對象添加到根視圖
 82         self.view.addSubview(viewParent)
 83         
 84         //初始化一個顏色數組,做爲四個視圖的背景顏色
 85         let colors = [UIColor.purple, UIColor.green, UIColor.orange, UIColor.blue]
 86         //初始化一個邊緣位置數組,做爲四個視圖在父視圖中的邊緣位置
 87         let edges = [Edge.top, Edge.left, Edge.bottom, Edge.right]
 88 
 89         //初始化兩個浮點類型的數字,
 90         //表示間距和尺寸
 91         let pad = CGFloat(20)
 92         let size = CGFloat(60)
 93         //經過一個四次的循環語句,依次建立四個視圖對象
 94         for i in 0...3
 95         {
 96             //初始化一個視圖對象
 97             let view = UIView()
 98             //根據循環的索引,
 99             //從顏色數組中,得到對應的元素,做爲視圖的背景顏色     
100             view.backgroundColor = colors[i]
101             //並將視圖對象添加到父視圖
102             viewParent.addSubview(view)
103             
104             //根據循環的索引,從約束數組中,得到對應的元素。
105             //做爲視圖對象的邊緣約束,
106             //將視圖對象約束在父視圖的指定位置,
107             //並設置父子視圖在四個方向上的間距。
108             view.anchorToEdge(edges[i], padding: pad, width: size, height: size)
109         }
110     }
111     
112     //添加一個方法
113     //用於將視圖對象,約束並填充父視圖的邊緣
114     func fillingAnEdge()
115     {
116         //初始化一個指定顯示區域的視圖對象,
117         //做爲其餘自定義視圖對象的父視圖。
118         let colors = [UIColor.purple, UIColor.green, UIColor.orange, UIColor.blue]
119         //初始化一個邊緣位置數組,做爲四個視圖在父視圖中的邊緣位置
120         let edges = [Edge.top, Edge.bottom, Edge.left, Edge.right]
121         //初始化兩個浮點類型的數字,
122         //表示間距和尺寸
123         let pad = CGFloat(10)
124         let size = CGFloat(40)
125         
126         //初始化一個指定顯示區域的視圖對象,
127         //做爲其餘自定義視圖對象的父視圖。
128         let viewParent1 = UIView(frame: CGRect(x: 50, y: 50, width: 220, height: 220))
129         //設置視圖對象的背景顏色爲淺灰色
130         viewParent1.backgroundColor = UIColor.lightGray
131         //將父視圖對象添加到根視圖
132         self.view.addSubview(viewParent1)
133         
134         //經過一個兩次的循環語句,依次建立兩個視圖對象
135         for i in 0...1
136         {
137             //初始化一個視圖對象
138             let view = UIView()
139             //根據循環的索引,
140             //從顏色數組中,得到對應的元素,做爲視圖的背景顏色 
141             view.backgroundColor = colors[i]
142             //並將視圖對象添加到父視圖
143             viewParent1.addSubview(view)
144             
145             //根據循環的索引,從約束數組中,得到對應的元素。
146             //做爲視圖對象的邊緣約束,
147             //將視圖對象約束並填充在父視圖的指定位置,
148             //並設置父子視圖在四個方向上的間距。
149             view.anchorAndFillEdge(edges[i], xPad: pad, yPad: pad, otherSize: size)
150         }
151         
152         //初始化一個指定顯示區域的視圖對象,
153         //做爲其餘兩個自定義視圖對象的父視圖。
154         let viewParent2 = UIView(frame: CGRect(x: 50, y: 300, width: 220, height: 220))
155         //設置視圖對象的背景顏色爲淺灰色
156         viewParent2.backgroundColor = UIColor.lightGray
157         //將視圖對象添加到根視圖
158         self.view.addSubview(viewParent2)
159         
160         //經過兩次的循環語句,依次建立兩個視圖對象
161         for i in 2...3
162         {
163             //初始化一個視圖對象
164             let view = UIView()
165             //根據循環的索引,
166             //從顏色數組中,得到對應的元素,做爲視圖的背景顏色 
167             view.backgroundColor = colors[i]
168             //並將視圖對象添加到父視圖
169             viewParent2.addSubview(view)
170             
171             //根據循環的索引,從約束數組中,得到對應的元素。
172             //做爲視圖對象的邊緣約束,
173             //將視圖對象約束並填充在父視圖的指定位置,
174             //並設置父子視圖在四個方向上的間距。
175             view.anchorAndFillEdge(edges[i], xPad: pad, yPad: pad, otherSize: size)
176         }
177     }
178     
179     override func viewWillLayoutSubviews() {
180         
181     }
182     
183     override func didReceiveMemoryWarning() {
184         super.didReceiveMemoryWarning()
185         // Dispose of any resources that can be recreated.
186     }
187 }
相關文章
相關標籤/搜索