1.采用自动布局,添加约束时,某些能自适应大小的无需添加宽高约束,如ImageView,它会自动根据里面图片的大小来调整自己的大小,当然如果你需要明确的大小,则是可以添加约束的。
2.UILabel会根据字体的大小和长度来调整自身的大小,所以有时候也不需要添加宽度约束和高度约束。另外UILabel支持换行,我感觉效果比UITextView效果要好,采用UITextView有时候会出现一些莫名其妙的BUG,如将UITextView放在屏幕的最底部,那么UITextView会被隐藏,只有双击底部(模拟器上)才会向上弹出文字,而采用UILabel则不会出现这样的状况,而且UILabel由于自适应大小,所以如果需要换行,添加约束时只需要添加宽度约束即可,高度会自动计算出来,而且换行仅需要一行代码支持,uilabel.numberOfLines = 0; 即可实现换行。当然修改字体及字体大小不算在里面。
3.在UITabelView中,如果TabelViewCell想要跟当前的ViewController进行数据之间的通信,那么采用协议代理则是最简单的方法,通过协议代理将数据当作参数传递出去。之前我傻乎乎的想利用superview来通过cell找到controller,事实证明这是最不好的方法,因为ios8,ios6通过cell找到controller需要两层superview,而ios7通过cell找到controller需要三层superview,因此你在使用superview之前还要判断用户是使用的什么设备,然后决定写多少层superview,这无疑是愚蠢的行为。
4.利用xib创建自定义cell的一般方法。一般自定义cell时,需要创建一个数据模型,由于利用xib创建的cell大小一般是不能改变的(目前我还没有见到过能改变大小的cell是用xib创建的),所以不需要frame模型,然后自定义cell类继承自UITableViewCell。自定义类持有一个数据模型的属性,然后能将数据模型里的数据设置到cell里的各个控件里面去。在controller中产生cell时则调用设置数据的方法,这样就能展示自定义的cell了。
5.关于如何让cell产生圆角并且两个cell之间产生一定距离的方法。默认的cell是四个角四四方方,铺满整个cell层的,并且同一section之间的cell是紧紧相连的。圆角会给人一种优雅的感觉,cell之间的间隔会给人高大上的印象,那么怎么实现这种效果呢。其实很简单,在cell中添加一个背景层,将背景层设置成自己喜欢的样式,圆角,与cell边缘的间隔,等等。然后将cell层也就是cell最上层的view的alpha值设为0,background color设置成clear color,即可达到这样的效果。