特定构造方法
- 什么样的方法是特定构造方法?
- 方法声明后面带有
NS_DESIGNATED_INITIALIZER
这个宏
- 子类如果重写了父类的特定构造方法,那么必须使用super调用父类的特定构造方法.例如
initWithFrame:
必须要调用[super initWithFrame:frame]
,如果不调用,编译就会报警告
-
NS_DESIGNATED_INITIALIZER
和NS_REQUIRES_SUPER
的区别
-
NS_DESIGNATED_INITIALIZER
必须用super调用父类的一个方法,这个方法可以是与子类中不同名称的方法,调用后编译就不会报警告
-
NS_REQUIRES_SUPER
则必须要调用父类中同名的方法
按钮的状态总结
1.UIControlStateNormal
1> 除开UIControlStateHighlighted、UIControlStateDisabled、UIControlStateSelected以外的其他情况,都是normal状态
2> 这种状态下的按钮【可以】接收点击事件
2.UIControlStateHighlighted
1> 【当按住按钮不松开】或者【highlighted = YES】时就能达到这种状态
2> 这种状态下的按钮【可以】接收点击事件
3.UIControlStateDisabled
1> 【button.enabled = NO】时就能达到这种状态
2> 这种状态下的按钮【无法】接收点击事件
4.UIControlStateSelected
1> 【button.selected = YES】时就能达到这种状态
2> 这种状态下的按钮【可以】接收点击事件
二、让按钮无法点击的2种方法
1> button.enabled = NO;
*【会】进入UIControlStateDisabled状态
2> button.userInteractionEnabled = NO;
*【不会】进入UIControlStateDisabled状态,继续保持当前状态
彻底搞懂TableView的contentSize,contentOffset和contentInset
- 什么是TableView的内容(content)?
- 1.cell
- 2.tableHeaderView 和 tableFooterView
- 3.sectionHeader 和 sectionFooter
- contentSize.height:指
内容
的高度
- contentOffset.y:指
内容
的偏移量(tableView的frame的顶部
与内容
顶部的差值,具体是哪个减哪个我忘了)
- contentInset:
内容
周围的间距(内边距)
- frame
- frame.size.height:tableView可视范围矩形框的高度
- frame:以父控件内容左上角为坐标原点
- 10种情况下分析TableView的contentSize,contentOffset和contentInset
1~~~~~~~~~~~~~~~~~~~~~~~~
2~~~~~~~~~~~~~~~~~~~~~~~~
3~~~~~~~~~~~~~~~~~~~~~~~~
4~~~~~~~~~~~~~~~~~~~~~~~~
5~~~~~~~~~~~~~~~~~~~~~~~~
6~~~~~~~~~~~~~~~~~~~~~~~~
7~~~~~~~~~~~~~~~~~~~~~~~~
8~~~~~~~~~~~~~~~~~~~~~~~~
9~~~~~~~~~~~~~~~~~~~~~~~~
10~~~~~~~~~~~~~~~~~~~~~~~~