UIView 是一个容器, 可以添加别的控件
view A 添加到 view B 上, A 是 B 的子view , B 是 A 的父view
每一个viewController 里 都会默认有一个view 属性
控制器用来管理view的生命周期 : 什么时候创建, 什么时候销毁
控制器用来处理用户交互事件 (逻辑代码要写在控制器里)
第一响应者: UITextField, 成为第一响应者 自动弹出键盘
回退键盘
撤销第一响应者身份
[self.firstField resignFirstResponder];
调用view的endEditing:
[self.view endEditing:YES];
问题列表
1. 什么是 IBAction IBOutlet
IBOutlet 用来连线 属性
IBAction 用来连线 方法 , 有void
2. 为什么要把属性放到类扩展中
为了安全和封装
3. 为什么要使用weak属性修饰
苹果官方推荐
如果使用了strong 也是可以正常运行的
连线介绍
button 在使用连线 关联 点击方法的时候 , 如果要传递参数只能是button自己
type
id 默认
UIButton * 进行选择
reason: '[<ViewController 0x7f8aa071dc50> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key tempButton.'
连线之后, 把属性给删除掉, 但是, 没有在sb 中把连线给取消掉
reason: '-[ViewController clickButton2:]: unrecognized selector sent to instance 0x7fbb8b925220'
给按钮关联过方法之后, 把方法给删除掉了, 没有在sb 中把连线给取消掉
一个view 可以有多个子view
一个子view 只能有一个父view
UIView的常用属性
subViews 查看view 的 子 view
superView 查看view 的 父 view
removeFromSuperview : 从 父 view 中删除 子 view
addSubview : 为 view 添加 子 view