博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cocos2d-x学习之---关于CCTableView中reloadData()操作,删除第一个/最后一个cell后tableview位置未刷新的问题...
阅读量:6160 次
发布时间:2019-06-21

本文共 864 字,大约阅读时间需要 2 分钟。

        在项目中,对tableview进行reloadDate操作时,如果删除了第一个cell(tableview是竖排显示)/最后一个cell(tableview是横排显示),tableview的cell数量会减少,但是这个时候会出现一个问题:tableview中的cell位置没有得到刷新,具体描述就是,当删除第一个cell(竖排显示)后,调用reloadData操作后,第一个位置的cell会被删除,但是后一个cell位置未上移,即原先的第二个cell还处于原来的位置,这个时候需要拖动tableview才会移动位置,显示才会正常;删除最后一个cell(横排显示)也会出现类似的问题。

         在网上找了很久的解决方案,后来找到cocos社区的一个讨论提到的解决方案看了下,正好能解决现在我遇到的问题,链接在这: 作者提到了解决方案:

try this when your data size is changedCCPoint pos = tableView->getContainer()->getPosition();tableView->getContainer()->setPosition( ccpAdd(pos,ccp(0,-CellHeight*numberOfAddedData)) );tableView->reloadData();
         然后另外一个网友也提出了他的解决方案:

m_pTableView->reloadData();CCPoint pt = m_pTableView->minContainerOffset();m_pTableView->setContentOffset(pt);

        对自己的这个项目来说,后一种方案更合适也相对来看简化一点。

        看了下使用效果,现在遇到的问题是每次这样操作了一下就相当于将tableview的位置设置为了初始位置了,所以还是存在一定的不足的地方,需要再想想解决方法。

转载于:https://www.cnblogs.com/zhong-dev/p/4044600.html

你可能感兴趣的文章
JSP的隐式对象
查看>>
JS图片跟着鼠标跑效果
查看>>
[SCOI2005][BZOJ 1084]最大子矩阵
查看>>
Leetcode 3. Longest Substring Without Repeating Characters
查看>>
416. Partition Equal Subset Sum
查看>>
app内部H5测试点总结
查看>>
[TC13761]Mutalisk
查看>>
while()
查看>>
常用限制input的方法
查看>>
IIS7下使用urlrewriter.dll配置
查看>>
并行程序设计学习心得1——并行计算机存储
查看>>
bulk
查看>>
C++ 迭代器运算
查看>>
【支持iOS11】UITableView左滑删除自定义 - 实现多选项并使用自定义图片
查看>>
【算法笔记】多线程斐波那契数列
查看>>
java8函数式编程实例
查看>>
jqgrid滚动条宽度/列显示不全问题
查看>>
在mac OS10.10下安装 cocoapods遇到的一些问题
查看>>
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>