1: 父视图隐藏则子视图也隐藏,子视图隐藏父视图不一定隐藏
2:父视图透明则子视图也透明,子视图透明父视图不一定透明
3:父视图可以剪切掉子视图超出自己的部分
4:父视图允许用户交互,则子视图允许用户交互;父视图不允许用户交互,就算子视图设置用户交互,也不能成功(默认为true,false为不可交互)
5:若子视图超出父视图边界,则子视图超出部分不响应任何事件
6:superView.subviews找的是super(父类)的一级子视图 7:viewWithTag是从一级子视图、二级子视图、、、一直找下去,直到找到为止
8:superview找到的是它最接近的父类(直接父类,而不是父类的父类
具体认知见代码如下:
let size = UIScreen.mainScreen().bounds.size
override func viewDidLoad() {
super.viewDidLoad()
//创建父视图
let superView = UIView.init(frame: CGRectMake(100, 50, size.width - 100, size.height - 50))
superView.backgroundColor = UIColor.yellowColor()
superView.tag = 1
self.view.addSubview(superView)
//创建子视图
let subView = UIView.init(frame: CGRectMake(-10, 100, 200, 200))
subView.backgroundColor = UIColor.redColor()
subView.tag = 2
superView.addSubview(subView)
//1:父视图隐藏则子视图也隐藏,子视图隐藏父视图比一定隐藏
// superView.hidden = true
// subView.hidden = true
//2:父视图透明则子视图也透明,子视图透明父视图不一定透明
subView.alpha = 0.5
// superView.alpha = 0.5
//3:父视图可以剪切掉子视图超出自己的部分
// superView.clipsToBounds = true
//4:父视图允许用户交互,则子视图允许用户交互;父视图不允许用户交互,就算子视图设置用户交互,也不能成功(默认为true,false为不可交互)
superView.userInteractionEnabled = true
//5:若子视图超出父视图边界,则子视图超出部分不响应任何事件
let button = UIButton.init(type: .System)
button.frame = CGRectMake(-50, -50, 100, 100)
button.backgroundColor = UIColor.cyanColor()
button.tag = 3
button.addTarget(self, action: #selector(self.btnClick(_:)), forControlEvents: UIControlEvents.TouchUpInside)
subView.addSubview(button)
//6:superView.subviews找的是super(父类)的一级子视图
let array = superView.subviews
print(array)
运行结果如下
//7:viewWithTag是从一级子视图、二级子视图、、、一直找下去,直到找到为止
let view = superView.viewWithTag(3)
print(view)
```
运行结果如下
![view.png](http://upload-images.jianshu.io/upload_images/2670926-f105f4228eab9cc9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
//8:superview找到的是它最接近的父类(直接父类,而不是父类的父类)
let viewSuper = button.superview
print(viewSuper)
}
运行结果如下
![viewSuper.png](http://upload-images.jianshu.io/upload_images/2670926-ef56385ad72c26df.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
//button的点击事件
func btnClick(sender: UIButton){
sender.setTitle("(arc4random_uniform(100))", forState: .Normal)
}