UITableView和UICollectionView使用中出现的问题总结

(1)在使用UITableView时经常会出现代理或者数据源方法不走的情况,遇到这类情况很多人就着急了,我要告诉你的是,不要着急,肯定是你的代码出现问题了,如何查找到问题出在哪个地方呢?
第一步:仔细看看你的TableView是不是添加到父视图上边了,没有添加上去当然不会它的代理和数据源方法了;
第二步:你的代理和数据源写了吗?如果只写了数据源没有写代理那就把两个都写上,这里是为了更安全;
第三步:是不是只走了返回单元格个数的方法而没有走返回单元格的方法,这个情况要根据你的单元格的创建方法来判断,单元格创建最简单的是直接创建,这个情况出问题的很少,不过你也要看看是不是你创建的单元格子类化了,单元格的本类是不是子类化的那个类;复用了单元格的情况,解决思路和直接创建一样,值得注意的是单元格的identifier一定不要有重复的;借助xib的情况,xib中的identifier和从复用池中拿的单元格的identifier一样吗?到这步还没解决问题?
第四步:把动态返回单元格的高度的方法写上,把父视图的 automaticallyAdjustsScrollViewInsets属性设置为NO,为什么呢?往父视图上添加的第一个视图是UIScrollView以及它子类的对象的时候,会自动往下偏移64个像素,但是这和数据源方法不走又有多少关系呢?只能告诉你,这是经验总结。。。。
(2)还有遇到明明子类化了一个UITableViewCell,但是一运行就说子类化的类不存在,或者是让你从Nib中获取,不要推卸责任到Xcode上,是你之前创建了一这样一个类,然后把它给删了,又创建了一个名字一样的类,这时候把Xcode清空一下缓存吧,如果还不行,自己犯下的错,含着泪也要重新创建一个类,注意不要再用你删除的类命名,记得把单元格的类名改一下哦!!那告诉你从Nib中获取单元格呢?同样的原因,操作办法和刚才一样。。。不要嫌麻烦,程序员就是制造麻烦然后解决麻烦的!!
(3)创建的tableView有时候会往下偏移,还是 automaticallyAdjustsScrollViewInsets惹的祸,还有时候最后一个单元格只显示了一部分,这就要看你创建的tableView时候的frame怎么设置的,有导航控制器和标签控制器的时候它都会自动偏移的,这种问题的解决办法就是用tableView的 contentInset属性把tableView的偏移量改过来。
使用UICollectionView也会遇到上面这些问题,一步一步来,问题都会解决的,在 UICollectionView中还可能是因为用的不是 UICollectionViewFlowLayout,再确定你的代理写的是 UICollectionViewDelegateFlowLayout,还有注册单元格的类名对吗?
总之出现问题首先考虑的是代码那个地方出错了,永远不要相信的自己代码是完美的,旺旺你认为最没有错误的地方会出现问题。。。。
(4)相信很多人都遇到过各种各样单元格复用导致的问题,单元格复用的原因很简单,单元格里面的内容没有清除干净,处理这类问题要了解应用程序的生命周期和tableView的代理和数据源方法的执行过程,不过不了解也没关系,只要记住这句话就OK:使用懒加载, 解决一切复用问题。具体就是,如果子类化了一个单元格,那么单元格上的子视图在初始化方法中创建,子视图的frame以及赋值的方法都要在layoutSubviews中写,单元格上的有些子视图时而显示时而不显示,这时候一定要设置它的hidden值,不要将它移除,也就是说在layoutSubviews中不要创建任何一个视图,在初始化方法中不要设置视图的特有属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值