iOS学习项目(12-静态单元格、13-QQ好友列表)

来源:互联网 发布:安卓点餐管理系统源码 编辑:程序博客网 时间:2024/05/21 22:56

12 静态单元格

使用范围:storyboard(无法在xib中实现)

使用情况:适用于cell一直不改变的情况,如应用的设置

操作方式:在storyboard里将tableView的content设置为Static Cells


---------------------------------------------------------------------------------------------------------------------------------------------------------------------


13 QQ好友列表

①layoutSubviews 当父控件frame发生改变时,会调用此方法,可以在这个方法中对内部子控件进行重新布局。


②button含有的边距:contentEdgeInsets、titleEdgeInsets、imageEdgeInsets


③需求:做button中图片的旋转



方法一:利用图片的替换

方法二:旋转图片

利用button.image.transform = CGAffineTransformMakeRotation();

备注:对于button有两点需要进行设置    1 button.image.contentMode = UIViewContentCenter

2 button.clipsToBounds = NO (默认剪切,由于图片实际上是一个矩形区域,旋转后再剪切会将图片切除一部分)


④didMoveToSuperview   当当前的view加载到父控件的时候回调用

备注:针对tableView这种情况而言,若tableView发生了reloadData之后,整个view会重新加载,加载完毕之后会调用此方法。(即可以在此方法中进行reloadData之后一些样式的相关设置)


⑤当cell重用的时候,有一个重要的原则:重用cell时,需要对cell所有控件的状态进行重新赋值。


⑥关于一个命名规范的错误

cannot assign to self outside of a method in init family.

错误原因:init+小写字母开头

XCode判断是否为init方法规则:方法返回id,并且名字以init+大写字母开头


⑦将UITableView的style设置为group之后,通过直接设置rowHeight、sectionHeaderHeight、sectionFooterHeight属性无效,只恩呢刚通过代理方法tableView:heightForHeaderInSection:等进行设置。而当UITableView的style为plain时,则两种方式都可以进行设置


⑧UIButton内容位置的设置用contentHorizontalAlignment和contentVerticalAligment进行设置

 contentMode比较合适用于UIImageView


⑨UILabel没有内边距的属性,即无inset


10、重写父类方法时一定要习惯性地实现父类方法[super ...],否则可能出现未知的错误


11、对于cell进行样式设置之后,再用reloadData后,整个tableView的样式会重新赋值(即内存重新分配)

解决方法:在setter model方法中(此数据一般不发生改版)重新对特定的样式进行设置

例子:上述提到的图片旋转,旋转完毕后会进行reloadDate。此时内存重新分配,可能导致图片显示错误,所以此时可以在这个方法中对图片旋转进行再一次设置。


0 0
原创粉丝点击