[Swift通天遁地]六、智能布局-(7)通过Group(组)命令实现对多个视图的统一约束
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10274440.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
本文将演示如何通过组的概念,同时对多个视图添加相同的约束关系。
首先确保在项目中已经安装了所需的第三方库。
点击【Podfile】,查看安装配置文件。
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】
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 }