iOS10 UI教程管理层次结构

iOS10 UI教程管理层次结构,在一个应用程序中,如果存在多个层次结构,就需要对这些层次结构进行管理。在UIView类中提供了可以用来管理层次结构的方法,让开发者可以添加、移动、删除来自层次结构中的元素。开发者可以在视图的实例上直接使用这些方法。以下将讲解3种管理层次结构的方法,分别为添加视图、插入视图以及移除视图。

1.添加视图

添加视图可以使用addSubview(_:)方法,此方法可以添加一个视图到子视图列表的末尾。被添加的视图被作为相同子视图的同级。同级子视图会被分配一个基于插入的顺序的索引,如图1.14所示。这个索引又对应于一个绘制顺序,索引值高的绘制在前,而索引值低的,绘制在前面同级视图的后面。其语法形式如下:

func addSubview(_ view: UIView)

其中,view用来指定要插入的视图。

2.插入视图

insertSubview(_:)方法添加的视图中可以显示在同级视图的前面。如果想要在任意同级视图的前后插入视图可以使用3个方法,分别为insertSubview(_:at:)方法、insertSubview(_:aboveSubview:)或者是insertSubview(_:belowSubview:)方法。

(1)insertSubview(_:at:)方法可以在指定的索引处插入视图,其语法形式如下:

func insertSubview(_ view: UIView, at index: Int)

其中,view用来表示插入的视图,index用来指定索引。

(2)insertSubview(_:aboveSubview:)方法可以在层次结构中插入一个视图,并且这个视图插入到指定视图的上面。其语法形式如下:

func insertSubview(_ view: UIView, aboveSubview siblingSubview: UIView)

其中,view用来表示插入的视图,siblingSubview用来指定视图。

(3)insertSubview(_:belowSubview:)方法也可以在层次结构中插入一个视图,并且这个视图插入到指定视图的下面。其语法形式如下:

func insertSubview(_ view: UIView, belowSubview siblingSubview: UIView)

其中,view用来表示插入的视图,siblingSubview用来指定视图。

【示例1-7:insertSubView】以下将使用insertSubview(_:at:)方法在界面中插入2个视图。具体的操作步骤如下:

(1)打开Main.storyboard文件,对主视图进行设计,效果如图1.15所示。

图1.15  主视图的效果

需要添加的视图以及对它们的设置如表1-1所示。

表1-1  对视图对象的设置

(2)打开ViewController.swift文件,编写代码,在指定索引处插入视图。

import UIKit
class ViewController: UIViewController {override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.//插入蓝色的空白视图let view1=UIView(frame:CGRect(x: 16, y: 76, width: 343, height: 272))view1.backgroundColor=UIColor.blueview.insertSubview(view1, at: 1)//插入红色的空白视图let view2=UIView(frame:CGRect(x: 16, y: 220, width: 343, height: 272))view2.backgroundColor=UIColor.redview.insertSubview(view2, at: 3)}
……
}

此时运行程序,会看到如图1.16所示的效果。

图1.16  运行效果

3.移除视图

当在应用程序中有不再使用的视图,就应当及时的从层次结构中移除,这样便于对层次结构的管理,此时使用到removeFromSuperview()方法。其语法形式如下:

func removeFromSuperview()

iOS10 UI教程管理层次结构

相关阅读:iOS10 UI教程子视图和父视图

iOS10 UI教程管理层次结构相关推荐

  1. iOS10 UI教程视图和子视图的可见性

    iOS10 UI教程视图和子视图的可见性 iOS10 UI教程视图和子视图的可见性,一个父视图可以通过clipsToBounds属性,定义子视图在边界(边界就是父视图的框架也就是父视图可以显示的范围) ...

  2. iOS10 UI教程子视图和父视图UI层次结构和Views继承

    iOS10 UI教程子视图和父视图UI层次结构和Views继承 iOS10 UI教程子视图和父视图UI层次结构和Views继承,本节将讲解与UI层次结构和Views继承相关的内容,其中包括子视图和父视 ...

  3. iOS10 UI教程层次结构的事件

    2019独角兽企业重金招聘Python工程师标准>>> iOS10 UI教程层次结构的事件 iOS10 UI教程层次结构的事件,层次结构中存在7个事件,对于这些事件的介绍如表1-3所 ...

  4. iOS10 UI教程视图的绘制与视图控制器和视图

    iOS10 UI教程视图的绘制与视图控制器和视图 iOS10 UI视图的绘制 iOS10 UI教程视图的绘制与视图控制器和视图,在iOS中,有很多的绘图应用.这些应用大多是在UIView上进行绘制的. ...

  5. iOS10 UI教程视图调试

    iOS10 UI教程视图调试 iOS10 UI教程视图调试,当视图很复杂的时候,层次结构就不会很简单了.Xcode可以通过视图(View)调试帮助开发者解决层次结构复杂的问题.视图调试是在Xcode ...

  6. iOS10 UI教程视图的中心位置

    iOS10 UI教程视图的中心位置 center表示的是视图的中心位置属性,这个属性在相对的UI层次结构上工作,和frame类似.center属性是一个在父视图上定义视图的位置的简便方法.center ...

  7. iOS10 UI教程基改变视图的外观与视图的可见性

    iOS10 UI教程基改变视图的外观与视图的可见性 视图是应用程序的界面,是用户在屏幕上看到的对象.用户可以通过触摸视图上的对象与应用程序进行交互,所以视图界面的优劣会直接影响到了客户体验的好坏.和视 ...

  8. iOS10 UI教程基础窗口的内容与设置起始窗口

    iOS10 UI教程基础窗口的内容与设置起始窗口 iOS10 UI教程基础窗口的内容与设置起始窗口,本章我们从iOS10开发中UI的基础知识开始讲解,其中包括了窗口.视图以及UI层次结构和Views的 ...

  9. iOS10 UI教程视图的生命周期

    iOS10 UI教程视图的生命周期 说到视图的生命周期一般都是指视图控制器的视图生命周期.在视图的声明周期中最主要的有8个方法,分别为loadView().viewDidLoad().viewWill ...

最新文章

  1. linux用户和组的管理详解
  2. C语言 - 快速排序算法
  3. datatable 自定义搜索框 + 汉化
  4. 7.python xmlrpclib及allownone作用
  5. php %3c%3c%3cxml 报错,代码审计| APPCMS SQL-XSS-CSRF-SHELL
  6. python 浏览器自动化_Python利用splinter实现浏览器自动化操作方法
  7. android studio真机调试失败,【Android】Android Studio真机调试的问题统整
  8. .net 中的DllImport
  9. 人脸对齐(八)--LBF算法
  10. 关于前端处理表情符号问题(解决方案)
  11. QtChart使用教程
  12. 阿里云申请域名及域名配置https
  13. 大数据营销——构建数据价值分享模式
  14. 使用C语言求斐波那契(Fibonacci)数列的第n项
  15. ms word 的激活
  16. OneNav一为主题魔改教程(三):给底部加上当前页面的消耗时间--洞五洞洞幺
  17. jmeter-while控制器使用总结
  18. 一文教你快速学习搭建属于自己的数据指标体系
  19. 华为云CDN为芒果TV加速,打造丝滑“追剧观综”的观看体验
  20. python3应用windows api对后台程序窗口及桌面截图并保存

热门文章

  1. Linux 服务器安全技巧
  2. weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB cannot be cast to oracle.sql.BLOB 解决方法
  3. .NET MVC Filter异常处理
  4. ovs-ofctl: s1 is not a bridge or a socket 解决方法
  5. 遗传算法解决排序问题
  6. ubuntu 安装linux 下vmVMware tools 步骤及问题解决
  7. vuex-along解决vuex中存储的数据在页面刷新之后失去的问题
  8. 在Angular中有多个字段
  9. 如何右对齐弹性项目?
  10. 如何在github上为新问题附加新的拉取请求?