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.redchildren[0].backgroundColor=UIColor.yellow}
……
}

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


图1.13  运行效果                                   图1.14  索引

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

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

  1. SwiftUI 中为什么应该经常用子视图替换父视图中的大段内容?

    概览 在 SwiftUI 官方教程中,Apple 时常提出"化整为零"的界面布局思想.简单来说,Apple 推荐 SwiftUI 视图的构建方式是:用若干自定义小视图来构成上层的功 ...

  2. 子视图屏蔽父视图手势

    父视图要实现手势协议UIGestureRecognizerDelegate - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecogn ...

  3. ios 子视图超出父视图的应的解决办法

    //我的情况是导航栏上加一个popView,超出了父视图,,popView上还有个tableView,cell点击没反应,往上大部分是说用下面的第一种方法,第一种方法父视图是可以获取到点击事件,但ta ...

  4. button点击事件不响应的解决方法(子视图大小超过父视图)

    一开始封装了一个tableView的headerView,感觉完成得还不错,后来测试的时候发现,最下边的两个button的点击事件不响应.然后就...着急了.在网上查询了button点击事件不响应的原 ...

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

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

  6. SwiftUI Navigation 如何快速从子视图返回根视图

    关键词 Navigation NavigationView NavigationLink 实战需求 在 UIKit 中,我使用 popToToRootViewController实现从子视图快速返回父 ...

  7. Android 为什么不能在子线程中直接更新UI

    1.现象 在子线程中直接更新UI就会crash,报错如下: android.view.ViewRootImpl$CalledFromWrongThreadException:Only the orig ...

  8. Swift官方入门教程系列--一--使用Swift创建UI【翻译版,源代码】

    本系列翻译自官方文档,系列代码见github:01_创建UI_BuildABasicUI 本课程让您熟悉Xcode,这是您用来编写应用程序的工具.您将熟悉Xcode中项目的结构,并学习如何在基本项目组 ...

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

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

最新文章

  1. 什么是信度分析(Reliability)?有哪些信度分析方法?那什么又是效度?
  2. linux下命令行安装anaconda3+pytorch+fastai
  3. The project you were looking for could not be found
  4. 只需3kbps就能清晰通话,这个谷歌音频工具开源了!
  5. linux剪贴板复制文件原理,linux剪贴板原理
  6. 方立勋_30天掌握JavaWeb_JDBC、SQL防注入(一)
  7. 离散数学反对称关系_《离散数学》学习记录 - 集合论
  8. 所有程序员都应该遵守的11条规则
  9. Hbase WALs(HLog) 文件存储,查看
  10. 匈牙利算法——最大匹配问题详解
  11. java 控制 sortedset_Java集合的checkedSortedSet()方法和示例
  12. JavaScript-12(脚本化CSS)
  13. java获取已经打开的串口的输出流_使用Java读取串口的程序(转)
  14. Axis1.4 在weblogic9.2中报 (401)Unauthorized 的处理
  15. 自动的自动化:EvoSuite 自动生成JUnit的测试用例
  16. 国内银行简码表(json)
  17. FID - Web特征数据来了
  18. 关于公众号运营推广圈粉心得
  19. CNN网络架构学习:Chapter-5-ResNet(附代码tensorflow)
  20. 企业微信自动打卡插件开发

热门文章

  1. (2) 第二章 WCF服务与数据契约 服务契约详解(二)- 如何引用WCF提供的服务
  2. 使用System.IO.Packaging.Package进行文件压缩所产生的问题
  3. Java中Image类与ImageIcon类的区别
  4. Apache ServiceComb Pack 微服务分布式数据最终一致性解决方案
  5. 利用exif.js解决手机上传竖拍照片旋转90\180\270度问题
  6. 解决dubbo问题:forbid consumer(2)
  7. tomcat无法正常关闭问题分析及解决
  8. eclipse中同步代码PULL报错checkout conflict with files的解决方法
  9. Mysql CPU占用高的问题解决方法小结
  10. Ajax跨域问题的两种解决方法