ios7 indexPathForCell 的坑(真是一个大大的坑)
笔者在编写APP 有一个功能点击cell上一个button,修改cell的在tableview中的位置
在ios8上没有问题。
在ios7上总是崩溃
以下是崩溃后提示:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of rows in section 0. The number of rows contained in an existing section after the update (11) must be equal to the number of rows contained in that section before the update (11), plus or minus the number of rows inserted or deleted from that section (1 inserted, 0 deleted) and plus or minus the number of rows moved into or out of that section (0 moved in, 0 moved out).
开始怀疑是删除或插入indexpath 有问题 。google了下,解决方法各式各样。
后来断点调试发现在ios7上
[self.tableviewindexPathForCell:myCell] 返回了nil
在ios8中使用了
- (void)selecttop:(id)sender{
if ([sender isKindOfClass:[UIButtonclass]]) {
UIView *view = sender;
AppListCell *myCell = (AppListCell *)view.superview.superview;
NSIndexPath * cellPath = [self.tableviewindexPathForCell:myCell];
}
google下是ios7 上cell上面还多了一个UITableViewWrapperView 具体可以参见:http://blog.csdn.net/u013604612/article/details/23120615
stackoverflaw 中 http://stackoverflow.com/questions/19282304/uitableview-indexpathforcell-ios6-v-ios7
有一个很好的处理方法
- (void)selecttop:(id)sender{
if ([sender isKindOfClass:[UIButtonclass]]) {
UIView *view = sender;
while (![view isKindOfClass:[UITableViewCellclass]]) {
view = [view superview];
}
AppListCell *myCell = (AppListCell *)view;
NSIndexPath * cellPath = [self.tableviewindexPathForCell:myCell];
}
标记下
真的是个坑!!!
据说ios6上也是两个superview 就可以获取到!!!!
ios7 indexPathForCell 的坑(真是一个大大的坑)的更多相关文章
- qt之窗口换肤(一个qss的坑:当类属性发现变化时需要重置qss,使用rcc资源文件)
1.相关文章 Qt 资源系统qt的moc,uic,rcc命令的使用 2.概要 毕业两年了,一直使用的是qt界面库来开发程序,使用过vs08.10.13等开发工具,并安装了qt的插件,最近在做客户 ...
- Lombok好用是好用,就是容易踩坑,这份避坑指南请查收
序言 各位好啊,我是会编程的蜗牛,作为java开发者,我们平常在开发过程中,总是希望能够尽量少敲代码.这一方面,当然是为了偷懒,另一方面,当然也是为了代码看起来更加简洁一点,不断往编程规范上靠.然后其 ...
- HttpDNS的坑以及一个针对安卓不太完善的测试方案
背景:单位因为域名劫持(具体表象是某个地区的用户ping不通域名或者因为DNS解析的ip跨网段导致访问速度很慢)需要运维经常去定位,于是提出了httpDNS方案. 想法是美好的,现实是残酷的.没引入这 ...
- Python练习-生成器-一个生成器被坑的体无完肤
代码如下,尽可能独立阅读: # 编辑者:闫龙 from urllib.request import urlopen #导入一个包,这就是egon留的一个坑 def get(url):#这是为了保证题目 ...
- STM32学习之路-感觉自己走到了一个天大的坑里了!
先前兴致勃勃的来弄16位并口驱动LCD.本以为就须要改下LCD IC的初始化即可了,没想到弄了这么多天最终发现自己走进了一个深坑了 T T 原因是我的开发板是奋斗V5的, 它确实有MCU外扩IO口, ...
- 又发现一个msdn的坑
一个类型里面有两个属性仅仅是大小写区别,可是IIS不区分大小写,问:如何才能查看两个属性里面的文档那? http://msdn.microsoft.com/en-us/library/microsof ...
- 踩到一个Emit的坑,留个纪念
重现代码: var dmFoo = new DynamicMethod("Foo", typeof(void), Type.EmptyTypes); var ilFoo = dmF ...
- HttpUtility.UrlEncode 和 HttpUtility.Encode 一个大深坑
进行了 Encode 之后 在解码(UrlEncode )之后 + 号莫名的变成了空格, 需要执行一个replace 操作
- 记一个dynamic的坑
创建一个控制台程序和一个类库, 在控制台创建一个匿名对象,然后再在类库中访问它,代码如下: namespace ConsoleApplication1 { class Program { static ...
随机推荐
- poj1192 最优连通子集(树形dp)
题目链接:poj1192 最优连通子集 求一棵无向树的最大子树和..类似于求最大子段和的办法,树形dp. dp[i][0]:以i为根,不包括 i 结点的子树最大权 dp[i][1]:以i为根,包括 i ...
- jersey处理支付宝异步回调通知的问题:java.lang.IllegalArgumentException: Error parsing media type 'application/x-www-form-urlencoded; text/html; charset=UTF-8'
tcpflow以流为单位分析请求内容,非常适合服务器端接口类服务查问题 这次遇到的问题跟支付宝支付后的回调post结果有关 淘宝的代码例子: public void doPost(HttpServle ...
- hidesBottombarWhenPushed的副作用
在UITabbarController包含的UINavigationController应用中,如果UINavigationController某一页(某个level)需要隐藏Tabbar,之前的做法 ...
- docker 会这些也够
$ sudo systemctl start docker $ sudo systemctl stop docker $ sudo systemctl restart docker If you wa ...
- 【个人使用.Net类库】(4)验证码类
验证码是现在管理系统常用的一种保护用户帐户信息的一种功能. 验证码可以有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试,虽然这可能是我们登录麻烦一点,但是对用户的密码安全来 ...
- 黑马程序员——OC语言Foundation框架 NSArray NSSet NSDictionary\NSMutableDictionary
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一) NSNumber 将各种基本数据类型包装成NSNumber对象 @ ...
- 制作一个顶部图片可以拉伸放大缩小效果的tableViewHeader
最近负责公司项目个人中心的项目模块研发,首页是一个头部图片可以拉伸放大缩小效果的tableViewHeader,今天这个demo和教程我增加了模糊效果和头像缩小效果.具体效果如图: 如果这个效果是想要 ...
- jQuery.ajax() 函数详解
jQuery.ajax()函数用于通过后台HTTP请求加载远程数据. jQuery.ajax()函数是jQuery封装的AJAX技术实现,通过该函数,我们无需刷新当前页面即可获取远程服务器上的数据. ...
- Activity之间数据传递(一)(简单传递,数据包Bundle,传递对象)
一,简单传递(简单的字符串) 第一个activity通过putExtra()将字符串传入i protected void onCreate(Bundle savedInstanceState) { s ...
- SQL同列合并
SELECT cast(id as varchar(8)) new_id FROM tourol_Atractions where tcid>0 order by new_id SELECT t ...