★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(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.0’ 2 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 }