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. WP开发资源

    wp开发:连续两次点击返回键退出程序的设计: http://hi.baidu.com/youngytj/item/6be317719cc371306cc37ce4 X http://www.cnblo ...

  2. JS 基础 入门

    JS做弹窗效果 //单行注释/*多行注释*/// 网页 标签语言    js语言是脚本语言/* 数据类型: 容器 1.整型  (int)  2.小数类型: float: 单精度的小数: double: ...

  3. 51nod 1605 棋盘问题 (博弈)

    题目:传送门. 题意:中文题.T组数据,每组给定一个n*m的棋盘,棋盘中的1代表黑色,0代表白色,每次可以将1或者非2质数的全黑色方形区域变为白色,不能操作者输,问谁能赢. 题解:每次可以将1或者非2 ...

  4. rsync.conf详解

    1.在服务端编辑配置文件 [root@game_intf ~]# more /etc/rsyncd.conf port=8730 log file=/var/log/rsync.log pid fil ...

  5. IOS- 02 零碎知识总结

    1.UIView,UIViewController,UIWindow和CALayer UIView是什么,做什么:UIView是用来显示内容的,可以处理用户事件 CALayer是什么,做什么:CALa ...

  6. 多线程编程2 - NSOperation

    一.NSOperation 1.简介 NSOperation实例封装了需要执行的操作和执行操作所需的数据,并且能够以并发或非并发的方式执行这个操作. NSOperation本身是抽象基类,因此必须使用 ...

  7. linux more AND less

    ================================more================================ more 是我们最常用的工具之一,最常用的就是显示输出的内容, ...

  8. eclipse上安装abator插件

    下面是我看了网上的有一点需要强调:网址 http://ibatis.apache.org/tools/abator然后全选,然后是==>重启就好了 eclipse上安装abator插件参考:ht ...

  9. 解决VS2010 C++ DLL不能断点调试的问题

    问题产生的过程是这样的,向exe项目(CSharp)中添加dll工程(c++开发)的引用,并将引用工程的属性“Link Library Dependencies”的值设为true,这样,在不加入lib ...

  10. openURL的使用方法:

    openURL的使用方法: view plaincopy toclipboardprint?        [[UIApplication sharedApplication] openURL:[NS ...