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.blue

        view.insertSubview(view1, at: 1)

        //插入红色的空白视图

        let view2=UIView(frame:CGRect(x: 16, y: 220, width: 343, height: 272))

        view2.backgroundColor=UIColor.red

        view.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教程层次结构的事件

    iOS10 UI教程层次结构的事件 iOS10 UI教程层次结构的事件,层次结构中存在7个事件,对于这些事件的介绍如表1-3所示.通过这些事件,可以监听视图,当视图在层次结构上发生变化时可以被拦截,也 ...

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

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

  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. 【ACM】hud1166 敌兵布阵(线段树)

    经验: cout 特别慢 如果要求速度 全部用 printf !!! 在学习线段树 内容来自:http://www.cnblogs.com/shuaiwhu/archive/2012/04/22/24 ...

  2. August 30th 2016 Week 36th Tuesday

    If you keep on believing, the dreams that you wish will come true. 如果你坚定信念,就能梦想成真. I always believe ...

  3. spring集成activeMQ

    1.安装activehttp://activemq.apache.org/activemq-5140-release.html2.运行D:\apache-activemq-5.14.0\bin\win ...

  4. 再来一发!DB2 应用程序如何从数据库取数据 Fetch

    The FETCH statement positions a cursor on the next row of its result table and assigns the values of ...

  5. 体系结构设计MVC

    体系结构设计MVC(viso图)GIT: https://coding.net/u/lklzjh/p/travel/git/blob/master/%E4%BD%93%E7%B3%BB%E7%BB%9 ...

  6. 【转】JQuery插件ajaxFileUpload 异步上传文件(PHP版)

    前几天想在手机端做个异步上传图片的功能,平时用的比较多的JQuery图片上传插件是Uploadify这个插件,效果很不错,但是由于手机不支持flash,所以不得不再找一个文件上传插件来用了.后来发现a ...

  7. 【jquery】幻灯片效果

    闲着无聊,用Jquery写了一个幻灯片效果. 我这人喜欢造轮子,除了jquery这种有强大开发团队的框架级别JS,其实的一些小程序都是尽量自己写. 一是因为怕出问题了没人问,二是自己写的改起来也方便. ...

  8. EF环境搭建碰到的问题

    研究EF Code Frist安装Entity Framework的时候,遇到了一些问题,下面就描述一下这些问题,顺便附上问题的解决办法. 1.Nuget安装EF的时候,一直报错,解决的办法是,卸载N ...

  9. Oracle锁定和解锁用户的命令

    转:http://database.51cto.com/art/200910/158576.htm 在DBA的日常工作中,经常遇到为Oracle用户解锁的操作:这篇文章给出在命令行下进行Oracle用 ...

  10. 数据结构之图 Part1

    Part 1 预计使用7天的时间来过掉图相关的数据结构.第一天主要是一天图的基本概念,熟练掌握定义是一切交流和沟通的基础. 1定义 1.1图 有穷非空顶点,外加边. G(V,E) Graph Vert ...