温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-07-21 20:52:15 来源:网络 阅读:597 作者:cf65happy 栏目:开发技术

(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,还有注册单元格的类名对吗?

总之出现问题首先考虑的是代码那个地方出错了,永远不要相信的自己代码是完美的,旺旺你认为最没有错误的地方会出现问题。。。。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI