[Swift通天遁地]六、智能布局-(7)通过Group(组)命令实现对多个视图的统一约束

本文将演示如何通过组的概念,同时对多个视图添加相同的约束关系。

首先确保在项目中已经安装了所需的第三方库。

点击【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 }

猜你喜欢

转载自www.cnblogs.com/strengthen/p/10274440.html