tableView cell 设置圆角 响应链
1. tableView的样式必须为 UITableViewStyleGrouped 样式否则cell设置的圆角无效。
2. delegate用weak和assign的区别:
A:用weak修饰是为了防止循环引用,weak修饰的变量不为其所属的对象持有,并且变量被销毁时,该变量值会自动置为nil
B:assign是对C基本数据类型的修饰,当然也可以用在对象类型的成员变量上,代表的意义知识单纯的拷贝值,即如果对某assign成员变量B赋值某对象A的指针,则此B只是简单地保存此指针的值,且并不持有对象A,也就意味着如果A被销毁,则B就指向了一个已经被销毁的对象,如果再对其发送消息会引发崩溃。(野指针异常)
C:weak和strong属性是ARC才引入的,而在MRC情况下,只能使用assign修饰了。weak之所以强大的地方,是当引用的对象被销毁时,它的值也会变为nil,所以推荐使用ARC。
D:MRC情况下需要手动置空。 self.xxx = nil;
3. 响应链
1.NSObject -> UIResponder -> (UIApplication, UIView, UIViewController)
UIView -> (UIControl, UILabel, UIScrollView)
UIControl -> (UIButton, UItextField, UIPageControl)
UIScrollView -> (UITableView, UITextView)
2.如果UIViewController(O)上加UIView(A),UIView(A)上加UIView(B)则
通过nextResponder输出的响应者链是 B -> A -> O.View -> O -> UIWindow -> UIApplication -> AppDelegate.
即事件先回溯到UIApplication在通过递归找到第一响应者。
4. UIStatusBar的设置
A. 全局设置。 如果想让状态栏整体为白色的话。可以在info.plist中设置。即key=Status bar style,Value=Opaque black style。同时要禁用viewController中对状态栏更改的配置,即key=View controller-based status bar appearance, Value = NO。此时的状态栏恒为白色。
B. 状态栏的颜色在不同的页面有变化时,不能使用全局配置,要在相应的页面进行设置。同时,应更改info.plist的配置key=View controller-based status bar appearance, Value = YES,移除key=Status bar style,Value=Opaque black style。使用
1 - (UIStatusBarStyle)preferredStatusBarStyle 2 { 3 // 黑色 4 // return UIStatusBarStyleDefault; 5 // 白色 6 return UIStatusBarStyleLightContent; 7 }