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

iOS10 UI教程子视图和父视图UI层次结构和Views继承,本节将讲解与UI层次结构和Views继承相关的内容,其中包括子视图和父视图、管理层次结构、视图和子视图的可见性、层次结构的事件等内容。

子视图和父视图

每一个UIView(或者是子类)的实例都可以与其它的视图使用父-子关系的方式进行连接。其中父视图被称为superview(超视图),孩子视图被称为subviews(子视图)。一个视图可以有且仅有一个父视图,但是可以有多个子视图,如图所1.12示。

 

图1.12  父视图和子视图

对于父视图的访问开发者可以使用superview属性,其语法形式如下:

var superview: UIView? { get }

对应子子视图的访问可以使用subviews属性,其语法形式如下:

var subviews: [UIView] { get }

【示例1-6:SuperViewAndSubView】以下将通过superview属性和subviews属性对空白视图的背景颜色进行设置。具体的操作步骤如下:

(1)打开Main.storyboard文件,从视图库中拖动View空白视图到View Controller的主视图中,将此空白视图的位置和大小调整为(16, 107, 343, 423)。为此视图声明和关联插座变量view1。

(2)从视图库中拖到第二个View空白视图到View Controller的主视图中,并将此视图放置在view1视图中,将此视图的位置和大小调整为(51, 147, 240, 128)。为此视图声明和关联插座变量view2。

(3)打开ViewController.swift文件,编写代码,为视图改变背景颜色。代码如下:

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var view1: UIView!

    @IBOutlet weak var view2: UIView!

    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

        let parentView=view2.superview                                                              //获取view2的父视图

        let children=view1.subviews                                                                      //获取view1的子视图

        parentView?.backgroundColor=UIColor.red

        children[0].backgroundColor=UIColor.yellow

    }

……

}

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

 

图1.13  运行效果                                   图1.14  索引

相关阅读:iOS10 UI教程视图的中心位置

iOS10 UI教程子视图和父视图UI层次结构和Views继承的更多相关文章

  1. IOS子视图超过父视图frame后,无法交互响应

    确定第一响应者 当用户触发某一事件(触摸事件或运动事件)后,UIKit会创建一个事件对象(UIEvent),该对象包含一些处理事件所需要的信息.然后事件对象被放到一个事件队列中.这些事件按照先进先出的 ...

  2. iOS 子视图超出父视图范围点击事件处理!

    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{   UIView *view = [super hitTest:point ...

  3. IOS 子视图获取父视图的控制器

    UIResponder* nextResponder = [self.view.superview.superview nextResponder]; if ([nextResponder isKin ...

  4. iOS10 UI教程管理层次结构

    iOS10 UI教程管理层次结构 iOS10 UI教程管理层次结构,在一个应用程序中,如果存在多个层次结构,就需要对这些层次结构进行管理.在UIView类中提供了可以用来管理层次结构的方法,让开发者可 ...

  5. UITableViewCell的父视图

    最近版本测试阶段,发现一个奇怪的问题,以前在A测试机上出现的崩溃bug,解决后今天在B测试机上又出现了,在B上解决完之后,返回到设备A上发现又不行了.最后调试发现是测试设备系统版本不同导致的,A设备是 ...

  6. [Swift通天遁地]六、智能布局-(6)其他几种约束关系:父视图/Corner/Edge/AnchorAndFillEdge

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  7. 利用AutoLayout适配滚动视图和表视图

    1.新增一个contentView,设置为与滑动视图的父视图等高等宽. 2.利用代码 if(_MyTestTableView.frame.size.height != _MyTestTableView ...

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

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

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

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

随机推荐

  1. 在SpringMVC中获取request对象

    1.注解法 @Autowired private  HttpServletRequest request; 2. 在web.xml中配置一个监听 <listener> <listen ...

  2. 【leetcode】Remove Element (easy)

    Given an array and a value, remove all instances of that value in place and return the new length. T ...

  3. 【leetcode】Happy Number(easy)

    Write an algorithm to determine if a number is "happy". A happy number is a number defined ...

  4. C#中DataTable排序、检索、合并等操作实例

    转载引用至:http://www.jb51.net/article/49222.htm     一.排序1.获取DataTable的默认视图2.对视图设置排序表达式3.用排序后的视图导出的新DataT ...

  5. Java容器题库

    一.    填空题 Java集合框架提供了一套性能优良.使用方便的接口和类,包括Collection和Map两大类,它们都位于  java.util  包中 队列和堆栈有些相似,不同之处在于栈是先进后 ...

  6. eclipse maven tomcat7 热部署

    .配置tomcat a.配置jdk b.CATALINA_HOME=c:\tomcat CATALINA_BASE=c:\tomcat .tomcat配置密码 C:\Program Files\oth ...

  7. JavaScript对象与数组

    一.Object 类型到目前为止,我们使用的引用类型最多的可能就是 Object 类型了.虽然 Object 的实例不具备多少功能,但对于在应用程序中的存储和传输数据而言,它确实是非常理想的选择.创建 ...

  8. MyBatis mapper文件中的变量引用方式#{}与${}的差别

    MyBatis mapper文件中的变量引用方式#{}与${}的差别 #{},和 ${}传参的区别如下:使用#传入参数是,sql语句解析是会加上"",当成字符串来解析,这样相比于$ ...

  9. Velocity笔记

  10. IIS网站发布若干问题

    1.Win7 64位 IIS未能加载文件或程序集"System.Data.SQLite"或它的某一个依赖项   未能加载文件或程序集"System.Data.SQLite ...