iOS10 UI教程管理层次结构

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 UIKitclass 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教程子视图和父视图

转载于:https://www.cnblogs.com/daxueba-ITdaren/p/6100630.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/417723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flash影响中文输入

外部网页&#xff1a;鼠标离开flash时可以输入中文<s:Application mouseOut"IMEEnabled()"> /** * 允许中文输入法 */ protected function IMEEnabled():void { IME.enabledtrue; }内部控件&#xff1a;获取焦点时加IME.enabledtrue;

oracle rac添加用户组,oracle 11g rac 与 oracle 10 rac所需要建立的组和用户

oracle 11g rac配置1. Create OS groups using thecommand below. Enter these commands as the root user:#/usr/sbin/groupadd -g 501 oinstall#/usr/sbin/groupadd -g 502 dba#/usr/sbin/groupadd -g 504 asmadmin#/usr/sbin/groupadd -g 506 asmdba#/usr/sbin/groupadd -g …

appium()-The event firing

原文地址&#xff1a;https://github.com/appium/java-client/blob/master/docs/The-event_firing.md since 4.1.0 The purpose This feature allows end user to organize the event logging on the client side. Also this feature may be useful in a binding with standard…

Flash Builder非法关闭导致无法启动

"C:\Program Files\Adobe\Adobe Flash Builder 4.5\FlashBuilder.exe" -clean 有时候出于某种原因&#xff0c;Flash Builder被非法关闭了&#xff08;比如死机&#xff09;&#xff0c;这个时候再启动Flash Builder&#xff0c;就会提示错误&#xff0c;提示你去看一…

c# oracle datasource,C# 连接Oracle 数据库 示例源码下载

【实例简介】C# 实现 Oracle 数据库的 增删改查 操作【实例截图】【核心代码】using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using S…

前端学习(2169):vue-router安装和配置方式

main.js import VueRouter from vue-router import Vue from vue//安装插件 const routers new VueRouter({//配置之间的关系routes })export default router index.js import VueRouter from vue-router import Vue from vue//安装插件 const routers new VueRouter({//配…

(模板)网页游戏用的“内容区”的“图赏影音”模板

网页游戏&#xff0c;没图赏影音用到的 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head>…

wmode解决flash透明及层深问题

在做web开发中可能会遇到flash遮挡页面中元素的情况&#xff0c;无论怎么设置flash容器和层的深度(z-index)也无济于事&#xff0c;现有的解决方案是在插入flash的embed或object标签中加入”wmode”属性并设置为wmode“transparent”或”opaque”&#xff0c;但wmode属性到底是…

url oracle default schema,oracle @Table中使用schema时insert报错

第一部分测试情况如下:maven修改com.alibabadruid1.1.10实体类Table(name "dpcenter.xeuser")public class OUser {private String userid;private String username;...}测试代码public static void main(String[] args) {OracleStyle stylenew OracleStyle();Conne…

如何在intellj Idea中给新建的项目添加jar包?

1. 假如我加入joda.jar 2. 找到发布的你想要的jar包&#xff0c;下载&#xff01; 3. 解压刚下载的jar包&#xff0c;复制 4. 在intellj idea中新建一个java项目&#xff0c;然后创建一个专门用于放jar的lib文件夹&#xff0c; 然后添加ctrlv 黏贴刚复制的jar包&#xff0c; 然…

outerDocument访问外部属性方法

使用"outerDocument.name"来访问外部的控件或者属性。

matlab builder for java下载,Matlab Builder JA - Compile Matlab into a Java jar - Free Version?

问题Please keep in mind that I know nothing about Matlab.Matlab Builder JA lets developer build Matlab applications and export them into Java jars. Thats great, I just have to produce a jar and I can then use it from other java code.Does anyone know how mu…

LintCode 两两交换链表中的节点

给一个链表&#xff0c;两两交换其中的节点&#xff0c;然后返回交换后的链表。 样例 给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。 分析&#xff1a;第一次调试的时候用了P1 然后超时调整不过&#xff0c;之后没用p1 就可以了。。 /*** Definition fo…

flash调用摄像头弹出设置框监听

<?xml version"1.0" encoding"utf-8"?> <mx:Application xmlns:mx"http://www.adobe.com/2006/mxml" layout"horizontal" verticalAlign"middle" backgroundColor"white">…

git合并多个提交

git合并多个提交 [时间&#xff1a;2016-11] [状态&#xff1a;Open] [关键词&#xff1a;git&#xff0c;git rebase&#xff0c;合并提交&#xff0c;commit] 0. 引言 本文是关于Git提交记录修改的方法&#xff0c;主要是将多个提交记录合并为一个&#xff0c;然后提交。这里…

js声明php变量,vue.js怎样声明变量

vue.js声明变量的方法&#xff1a;1、使用let定义&#xff0c;let是块级作用域&#xff0c;函数内部使用let定义后&#xff0c;对函数外部无影响&#xff1b;2、使用var定义&#xff0c;var定义的变量可以修改&#xff1b;3、使用const定义&#xff0c;const定义的变量不可以修…

使用Flex生成GUID

使用UIDUtil.createUID()方法可以生成一个GUID&#xff0c;UIDUtil在mx.utils.UIDUtil包里 var newGUID:StringUIDUtil.createUID();

Flex与JavaScript的交互:调用JavaScipt或者被JavaScript调用

一、在JavaScript中调用Flex方法 在Flex中可以用ExternalInterface来调用Flex的方法&#xff0c;途径是 1.通过在Flex应用可调用方法列表中添加指定的公用方法。在Flex应用中通过调用addCallback()可以把一个方法添加到此列表中。addCallback将一个ActionScript的方法注册为一个…