iOS调试——关于insertRowsAtIndexPaths方法崩溃以及动画实效的处理办法
2017-10-11 16:05
597 查看
有这样一个场景,新增了一个数据,然后再插入一个新的数据,会因为numberOfRowInSection多次刷新后个数与数据源不一致而崩溃。
插入方法:
[_tableView
beginUpdates];
[_tableViewinsertRowsAtIndexPaths:indexPaths
withRowAnimation:UITableViewRowAnimationLeft];
[_tableViewendUpdates];
代理方法:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return
_dataArray.count;
}
处理办法:
1.在插入前就保证数据个数一致,比如更新了数据后就调用reloadData;
2.插入方法改为新增数据源,然后reloadData
插入动画失效处理:
1.使用了reloadData使动画失效,即使先插入,后reloadData.(插入会更新UI,其实不需要再reloadData)
2.插入方法放在了animation动画中,需要将插入提出来
另外,测试发现beginUpdates和endUpdates可以不要,虽然是作为动画的处理,去掉不影响动画,不过还是按苹果要求的在做插入删除时加上吧,另外发现在iOS11中苹果有新的block方法代替这两个方法
插入方法:
[_tableView
beginUpdates];
[_tableViewinsertRowsAtIndexPaths:indexPaths
withRowAnimation:UITableViewRowAnimationLeft];
[_tableViewendUpdates];
代理方法:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return
_dataArray.count;
}
处理办法:
1.在插入前就保证数据个数一致,比如更新了数据后就调用reloadData;
2.插入方法改为新增数据源,然后reloadData
插入动画失效处理:
1.使用了reloadData使动画失效,即使先插入,后reloadData.(插入会更新UI,其实不需要再reloadData)
2.插入方法放在了animation动画中,需要将插入提出来
另外,测试发现beginUpdates和endUpdates可以不要,虽然是作为动画的处理,去掉不影响动画,不过还是按苹果要求的在做插入删除时加上吧,另外发现在iOS11中苹果有新的block方法代替这两个方法
相关文章推荐
- 关于IE7打开任何网页弹出[未处理的异常('对象不支持此属性或方法')发生在iexplorer.exe]错误调试框的解决办法
- 关于ADO.Net使用TableAdapter时产生:更新要求有效的deletecommand或update,insert,selectcommand的解决办法,以及“违反并发性”处理
- iOS崩溃日志crash logs追踪以及调试方法
- iOS崩溃日志crash logs追踪以及调试方法
- iOS常见崩溃情况以及bug调试解决方法
- iOS崩溃日志crash logs追踪以及调试方法
- iOS常见崩溃情况以及bug调试解决方法
- 关于“未处理异常函数”调试方法
- 关于ios通话应用退到后台语音中断处理办法
- 关于 AppDomain 未知异常导致进程崩溃的处理办法
- 关于在Cisco路由器接口上应用ip tcp adjust-mss命令后,TCP头中出现选项的解释以及处理方法
- oracle ilearning中文汉字问题解决办法以及HTTP调试工具Fiddler的使用方法介绍
- 关于.NET安装时需要重启动的处理办法,以及延伸出的重启后继续安装的安装包的一点想法
- iOS/调试器和程序崩溃时的一些处理方法
- [iOS]Xcode4/iOS5调试UncaughtException崩溃First throw call stack不打印方法名的解决方案
- 解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
- Android 程序退出的办法以及监听并处理用户按下back键的方法
- IOS开发:关于设置UIView的背景为图片的方法以及问题
- [iOS]Xcode4/iOS5调试UncaughtException崩溃First throw call stack不打印方法名的解决方案
- 关于IOS键盘遮住输入框以及关闭的方法。