UI 小结
UI控件出不来的原因 ————————————————————————————————
1.frame的尺寸和位置对不对
2.hidden(隐藏)是否为YES
3.有没有添加到父控件中
4.alpha 是否 < 0.01
5.被其他控件挡住了
6.父控件的前面5个情况
界面的搭建————————————————————————————————————————
A.storyboard & xib
搭建界面 设置控件 设置 视图控制器之间的跳转
连线
IBOutlet 需要全局访问的控件
IBAction 控件的监听方法 ,本质上是void 可以保证能够拖线
在代码中addTarget 和IBAction 添加监听方法 是等价的
在loadView中建立 视图层次结构
定义属性 方便访问
MVC————————————————————————————————————————————————
model 数据模型
view 视图
controller 视图控制器 绝大多数代码都在这里实现
交互控件——————————————————————————————————————————————
button 按钮
UISwitch 开关
UISlider 滑块
UISegmentedControl 选项卡
内容显示控件——————————————————————————————————————————
UIimageView 图像视图
UIscrollView 滑动视图
UILabel 标签视图
UItableView 表格视图
UIWebView 网页视图
UICollectionView 九宫格视图
文字输入控件————————————————————————————————————————————
UITextField 文本框 只能输入一行文字
UITextView 文本视图 能显示 输入多行文字
数据选择控件————————————————————————————————————————————
UIPickerView 数据选择视图
UIDatePicker 日期选择控件
事件监听方法————————————————————————————————————————————
代理模式
代理模式目标 : 不知道委托方要做的具体实现细节 只需要知道发生事件事能够得到结果
委托方
定义代理方法 委托方能够发生什么事 传递什么数据
第一参数是自己? 传递的数据
定义代理属性 发生事件时 谁来执行具体工作
在需要的时候通知代理 直接调用方法
代理方
遵守协议
实现方法
设置代理 告诉委托方 有事找我
通知
特点 多对多
以监听字符串的形式 来调用对应方法
发生事件的控件,在事件发生时,POST指定的字符串
监听字符串对象的"观察者",在监听到字符串时,执行具体方法
效率不高,如果代理不复杂,尽量少用!
关于销毁,如果监听者被销毁 -> nil,通知中心的注册通知没有销毁!程序不会蹦
KVO应用程序
主要应用场景:监听"模型属性"数据的变化
从网络获取数据,某些重要信息发生变化的监听,例如:QQ中监听到接收到未读消息的数字。
多视图控制器 视图
使用多视图控制器的原因? 实现多个界面之间的跳转
UINavigationController
管理了一个视图控制器 的栈 以及一个导航条
入栈 push
出栈 pop
UITabbarController
并列管理多个视图控制器
视图控制器一经创建 不会被销毁
控制器之间为并列关系
浙公网安备 33010602011771号