上周忙于薄荷的提交,新知识的积累不够丰富,无法连贯成一篇有质量的博文。这里分享一下上周薄荷开发中遇到的一些问题和解决办法。
跳转问题
在项目里有个需求,A–push–>B–push–>C, 然后想让从C 直接到D,D–pop–>A
当时简单试了一下
C–pop–>A,A–push–>C.
这里有两个问题,就算把C–pop–>A的动画设置为NO,还是会闪现一下A的界面,在手机不流畅的情况下会更突出。另外,有时候pop后push还会失效。
后来试了改变导航控制器里的viewControllers的结构,达到无缝跳转
NSArray *viewControllers = self.navigationController.viewControllers;
NSMutableArray *newViewControllers = [NSMutableArray array];
[newViewControllers addObject:[PXShopOrderListViewController new]];
[self.navigationController setViewControllers:newViewControllers animated:YES];
- 展开动画
需求要求点击Cell的时候展开有一个简单动画效果,当时用了reloadRowsAtIndexPaths这个方法,
UITableViewRowAnimationFade,
UITableViewRowAnimationRight,
UITableViewRowAnimationLeft,
UITableViewRowAnimationTop,
UITableViewRowAnimationBottom,
UITableViewRowAnimationNone,
UITableViewRowAnimationMiddle,
试了几个动画都不满意,最后改成了UITableViewRowAnimationNone,发现展开有了动画,说好的None呢。。。
iOS 版本不同的差异
根据cell上的空间获取当前的cell是哪一个indexPath的,习惯用的是
[[itemCell.someView superview] superview];
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
后来测试的时候发现在iPhone4上出现了闪退的问题,检查发现
在ios7上,
[[itemCell.someView superview] superview]
获取并不是当前的cell,
[[[itemCell.someView superview] superview] superview]
获取的才是当前的cell.
另外,一些比较多的bug出现在4上,等iOS10上线,可以考虑不在适配iOS8一下的系统。