[Xcode10 实际操作]二、视图与手势-(3)UIView视图的基本操作

本文将实现视图的添加与删除,以及切换视图在父视图中的层次。

 1 import UIKit
 2
 3 class ViewController: UIViewController {
 4
 5     override func viewDidLoad() {
 6         super.viewDidLoad()
 7         // Do any additional setup after loading the view, typically from a nib.
 8         //创建一个原点在(30,50),尺寸为(200,200)的矩形常量,作为视图的显示区域
 9         let rect = CGRect(x: 30, y: 50, width: 200, height: 200)
10         //创建一个相应的UIView视图
11         let view = UIView(frame: rect)
12         //设置视图的背景颜色为棕色
13         view.backgroundColor = UIColor.brown
14         //将视图添加到当前视图控制器的根视图
15         self.view.addSubview(view)
16
17         //创建一个按钮,当点击此按钮时,将动态添加另一个视图
18         let btAdd = UIButton(frame: CGRect(x: 30, y: 350, width: 80, height: 30))
19         //设置按钮的背景色为灰色
20         btAdd.backgroundColor = UIColor.gray
21         //设置按钮在正常状态下的标题,其他状态还包括按钮被按下等状态
22         btAdd.setTitle("Add", for: UIControl.State())
23         //给按钮绑定点击事件,这样点击按钮时,将执行添加视图方法
24         btAdd.addTarget(self, action: #selector(ViewController.addView(_:)), for: UIControl.Event.touchUpInside)
25         //将按钮添加到当前视图控制器的根视图
26         self.view.addSubview(btAdd)
27
28         //同样创建第二个按钮,当点击这个按钮时,将切换根视图中,两个视图的层次顺序
29         let btBack = UIButton(frame: CGRect(x: 120, y: 350, width: 80, height: 30))
30         //设置按钮背景色为灰色
31         btBack.backgroundColor = UIColor.gray
32         //设置按钮在正常状态下的标题文字
33         btBack.setTitle("Switch", for: UIControl.State())
34         //给按钮绑定点击事件,当点击按钮时,交换两个视图的层次顺序
35         btBack.addTarget(self, action: #selector(ViewController.bringViewBack(_:)), for: UIControl.Event.touchUpInside)
36         //将按钮添加到当前视图控制器的根视图
37         self.view.addSubview(btBack)
38
39         //创建第三个按钮,当点击这个按钮时,将从当前视图控制器的根视图中,删除新添加的视图
40         let btRemove = UIButton(frame: CGRect(x: 210, y: 350, width: 80, height: 30))
41         //设置按钮背景色为灰色
42         btRemove.backgroundColor = UIColor.gray
43         //设置按钮在正常状态下的标题文字
44         btRemove.setTitle("Remove", for: UIControl.State())
45         //然后给按钮绑定点击事件,当点击按钮时,执行删除视图的操作
46         btRemove.addTarget(self, action: #selector(ViewController.removeView(_:)), for: UIControl.Event.touchUpInside)
47         //将按钮添加到当前视图控制器的根视图
48         self.view.addSubview(btRemove)
49     }
50
51     //创建第一个按钮的点击事件
52     @objc func addView(_ sender:UIButton!)
53     {
54         //创建一个原点在(60,90),尺寸为(200,200)的矩形常量,作为视图的显示区域
55         let rect = CGRect(x: 60, y: 90, width: 200, height: 200)
56         //创建一个相应的UIView视图
57         let view = UIView(frame: rect)
58         //设置视图的背景颜色为紫色
59         view.backgroundColor = UIColor.purple
60         //给这个视图指定一个标志,这样就可以在以后需要的时候,通过标志找到这个视图
61         view.tag = 1
62         //添加到当前视图控制器的根视图
63         self.view.addSubview(view)
64     }
65
66     //创建第二个按钮的点击事件
67     @objc func bringViewBack(_ sender:UIButton!)
68     {
69         //首先通过给视图对象设置的标志值,找到新添加的视图
70         let view = self.view.viewWithTag(1)
71         //将新添加的视图,移到所有兄弟视图的后方
72         self.view.sendSubviewToBack(view!)
73     }
74
75     //创建第三个按钮的点击事件
76     @objc func removeView(_ sender:UIButton!)
77     {
78         //通过给视图对象设置的标志值,找到新添加的视图
79         let view = self.view.viewWithTag(1)
80         //将新添加的视图删除,也就是从当前视图控制器的根视图中删除
81         view?.removeFromSuperview()
82     }
83 }

原文地址:https://www.cnblogs.com/strengthen/p/9951515.html

时间: 2024-08-26 23:18:52

[Xcode10 实际操作]二、视图与手势-(3)UIView视图的基本操作的相关文章

[Xcode10 实际操作]二、视图与手势-(1)UIView视图的基本使用

本文将演示在视图控制器的根视图里添加两个视图对象. 1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib. 8 //初始化一个举行区域对象, 9 //它在屏幕上定义了一个矩形

[Xcode10 实际操作]二、视图与手势-(7)UIView视图的渐变填充

本文将演示创建一个具有渐变填充色的图形 1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib. 8 //初始化一个原点在(10,80),尺寸为(300,300)的矩形常量,作

[Xcode10 实际操作]二、视图与手势-(8)UIView视图的纹理填充

本文将演示将导入的图片作为纹理,平铺整个屏幕. 往项目中导入一张图片. 点击底部左下角的图标->[Import]->选择需要导入的图片->[Open] 1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, t

[Xcode10 实际操作]二、视图与手势-(4)给图像视图添加边框效果

本文将演示给图片添加颜色相框 1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib. 8 //UIImage是一个用来加载和绘制图像的类 9 let image = UIIm

UIView视图

UIView视图的基本使用 打开视图控制器代码文件ViewController.swift 编写代码: override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //添加两个视图 //CGRect结构,在屏幕上定义了一个矩形,它包含了对象的原点位置,和大小尺寸 let rect1 = CGRectMake(30

ASP.NET MVC3 实例(六) 增加、修改和删除操作(二)

http://www.jquery001.com/asp.net-mvc3-instance-add-update-delete2.html 上篇我们在 ASP.NET MVC3 中实现了添加操作,由于时间关系没有完成修改.删除操作,我们新建了一个名为"Contact"的 Controller,并实现了添加方法,下边就让我们在此基础上来完成 ASP.NET MVC3 中的修改和删除操作. 首先,我们在 Contact 控制器类中添加一个名为 View()的方法,用来从 Contact

GIS基础软件及操作(二)

原文 GIS基础软件及操作(二) 练习二.管理地理空间数据库 1.利用ArcCatalog 管理地理空间数据库 2.在ArcMap中编辑属性数据 第1步 启动 ArcCatalog 打开一个地理数据库 当 ArcCatalog打开后,点击, 按钮(连接到文件夹). 建立到包含练习数据的连接(比如“E:\ARCGIS\2练习二\Exec2”), 在ArcCatalog窗口左边的目录树中, 点击上面创建的文件夹的连接图标旁的 (+)号,双击个人空间数据库- National.mdb.打开它.. 在N

Android学习笔记二十四之ListView列表视图二

Android学习笔记二十四之ListView列表视图二 前面一篇我们介绍了常用的几种适配器的简单实现和ListView的简单使用,这一篇中,我们介绍一下ListView的优化和一些其它的问题. ListView优化方法一 在ListView中,我们最常用的就是自定义Adapter,在我们自定义Adapter中,需要实现两个比较重要的方法getCount()和getView(),前者是负责计算ListView的总Item数,后者是生成Item,有多少个Item就会调用getView()方法多少次

iOS开发 MMDrawerController左右抽屉打开手势与中心视图子视图控制器手势冲突问题的解决方案

MMDrawerController是一个很好用的解决抽屉效果的第三方类,但有时候当我们在中心视图控制器中需要使用手势进行其他操作的时候会产生手势冲突,导致运行效果不符合我们的想象.那么问题来了,该怎么解决冲突问题呢? 下面是我在使用过程中的个人总结: 我的需求: 1.有一个左抽屉和中心视图控制器,从中心视图控制器右滑可以打开左抽屉. 2.中心视图控制器中的TableViewCell可通过滑动手势删除 问题所在: 1.由于删除cell的左滑手势和MMDrawerController的打开右抽屉的