1. 程式人生 > >[Swift通天遁地]六、智能布局-(7)通過Group(組)命令實現對多個視圖的統一約束

[Swift通天遁地]六、智能布局-(7)通過Group(組)命令實現對多個視圖的統一約束

pod create framework 配置文件 灰色 oat 類庫 eww 向上

本文將演示如何通過組的概念,同時對多個視圖添加相同的約束關系。

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

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

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】

 1 import UIKit
 2 //在當前的類文件中,引入已經安裝的第三方類庫
 3 import Neon
 4 
 5 class ViewController: UIViewController {
 6     
 7     //添加一個視圖變量,作為類的一個屬性。
 8     var neonView : UIView!
 9     
10     override func viewDidLoad() {
11         super.viewDidLoad()
12         // Do any additional setup after loading the view, typically from a nib.
13 //組的使用 14 groupExample() 15 } 16 17 //添加一個方法,用來演示組的使用。 18 func groupExample() 19 { 20 //初始化一個指定顯示區域的對象,作為其他子視圖的父視圖。 21 let viewParent = UIView(frame: CGRect(x: 20, y: 40, width: 280, height: 280)) 22 //設置視圖對象的背景顏色為淺灰色 23 viewParent.backgroundColor = UIColor.lightGray
24 //將視圖對象添加到根視圖 25 self.view.addSubview(viewParent) 26 27 //初始化兩個浮點類型的數字, 28 //表示視圖的間距和尺寸。 29 let pad = CGFloat(10) 30 let size = CGFloat(60) 31 //初始化一個顏色數組,作為四個視圖的背景顏色。 32 let colors = [UIColor.purple, UIColor.brown, UIColor.orange] 33 34 //初始化一個視圖對象 35 let view1 = UIView() 36 //設置背景顏色 37 view1.backgroundColor = colors[0] 38 //將視圖對象添加到父視圖 39 viewParent.addSubview(view1) 40 41 //初始化一個視圖對象 42 let view2 = UIView() 43 //設置背景顏色 44 view2.backgroundColor = colors[1] 45 //將視圖對象添加到父視圖 46 viewParent.addSubview(view2) 47 48 //初始化一個視圖對象 49 let view3 = UIView() 50 //設置背景顏色 51 view3.backgroundColor = colors[2] 52 //將視圖對象添加到父視圖 53 viewParent.addSubview(view3) 54 55 //通過調用父視圖的組居中方法,將指定的三個視圖,約束在水平方向的中心位置。 56 //同時設置子視圖的尺寸和間距。 57 viewParent.groupInCenter(group: .horizontal, views: [view1, view2, view3], padding: pad, width: size, height: size) 58 59 //通過調用父視圖的組居中方法,將指定的三個視圖,約束在垂直方向的中心位置。 60 //同時設置子視圖的尺寸和間距。 61 //viewParent.groupInCenter(group: .vertical, views: [view1, view2, view3], padding: pad, width: size, height: size) 62 63 //通過調用父視圖的組居中並貼近邊緣的方法,將指定的三個視圖,約束在水平方向上的居左的位置 64 //viewParent.groupAgainstEdge(group: .horizontal, views: [view1, view2, view3], againstEdge: .left, padding: pad, width: size, height: size) 65 66 //將子視圖成組,並在垂直方向上填充父視圖。 67 viewParent.groupAndFill(group: .vertical, views: [view1, view2, view3], padding: pad) 68 } 69 70 override func viewWillLayoutSubviews() { 71 72 } 73 74 override func didReceiveMemoryWarning() { 75 super.didReceiveMemoryWarning() 76 // Dispose of any resources that can be recreated. 77 } 78 }

[Swift通天遁地]六、智能布局-(7)通過Group(組)命令實現對多個視圖的統一約束