Swift UIView 的多种添加方法和打标签和移除方法的详解、父子视图的关系

//

// ViewController.swift

// Swift_003

// Created by 周双建 on 15/11/29.

// copyright © 2015 周双建. All rights reserved.

//

//父视图和字视图

import UIKit


class ViewController: UIViewController {


override func viewDidLoad() {

super.viewDidLoad()

//创建父视图

let Father_View = UIView(frame: CGRectMake(100,100,100))

Father_View.backgroundColor = UIColor.redColor()

self.view.addSubview(Father_View)

//创建子视图

let Son_View = UIView(frame: CGRectMake(20,20,20))

Son_View.backgroundColor = UIColor.greenColor()

Father_View.addSubview(Son_View)

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

//创建子视图2

let Son2_View = UIView(frame: CGRectMake(10,10,10))

Son2_View.backgroundColor = UIColor.blackColor()

Son_View.addSubview(Son2_View)

//获取父视图的所有子视图

print(self.view.subviews)

//获取Son_View的所有子视图

print(Son_View.subviews)

/********************************************************/

//添加子视图的其他方法

Son_View.frame = CGRectMake(20, 20,100)

Son2_View.frame = CGRectMake(20,100)

//第一种 将视图View 置于子视图数组的下标为Index的位置

self.view.insertSubview(Son2_View,atIndex: 2)

print(self.view.subviews)

/* 打印结果

0 [<_UILayoutGuide: 0x7f98e0c56860; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x7f98e0c55590>>,

1 <_UILayoutGuide: 0x7f98e0f24e80; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x7f98e0f0cad0>>,0)"> 2 <UIView: 0x7f98e0c55ab0; frame = (20 20; 100 100); layer = <CALayer: 0x7f98e0c55c20>>,0)"> 3 <UIView: 0x7f98e0c555b0; frame = (100 100; 100 100); layer = <CALayer: 0x7f98e0c55720>>]

*/

//第二种 将视图View 置于某个视图的下面

//首先调整son2坐标

Son2_View.frame = CGRectMake(100, 100,100)

self.view.insertSubview(Son2_View,belowSubview: Son_View)

// View的隐藏 true false YES NO

Son_View.hidden = true

Son2_View.hidden = true

let Father1_view = UIView(frame: CGRectMake(120,120,100))

Father1_view.backgroundColor = UIColor.magentaColor()

//View 设置 tag 标签

Father1_view.tag = 100

self.view.addSubview(Father1_view)

let View_Common = UIView(frame: CGRectMake(110,110,100))

View_Common.backgroundColor = UIColor.blackColor()

self.view.insertSubview(View_Common,belowSubview: Father1_view)

/*

这是将 View_Conmon 置于Father1_view 的下面

/*******************************************************/

View_Common.hidden = true

let View_one = UIView(frame: CGRectMake(110,100))

View_one.backgroundColor = UIColor.blackColor()

self.view.insertSubview(View_one,aboveSubview: Father_View)

/*

这是View_one 置于 Father_View 的上面

/*******************************************************/

View_one.removeFromSuperview()

/*

View 的移除

*/

}

/*

<UIView: 0x7fc599613530; frame = (100 100; 100 100); layer = <CALayer: 0x7fc5996136a0>>]

*/

/*

[<UIView: 0x7f8bb873c8f0; frame = (10 10; 10 10); layer = <CALayer: 0x7f8bb8705b00>>]

这说明命Son2_View 不是Father_View 的子视图

*/

override func touchesBegan(touches: Set<UITouch>,withEvent event: UIEvent?) {

var View_Two = self.view.viewWithTag(100)

View_Two!.backgroundColor = UIColor.grayColor()

}

override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// dispose of any resources that can be recreated.

}



}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...