iOS 工作遇到问题记录
1、UITableView的scrollDelegate问题
下午遇到一个奇怪的问题,之前都没有注意过,由于A
VC中要实现tableView和其他View位置的联动,
所以实现了tableView的delegate中的scrollViewDidScroll方法,结果在点击商品push
商品详情VC B 的时候,问题出现了。
问题表现:
在调用[self.navigationController pushViewController:productDetailVC
animated:YES];
时发现VC A中的tableView总是会滚动到顶部(contentOffset被修改了)
看了半天也没发现问题,后面在scrollViewDidScroll的位置加了一个断点,发现在navigationController在Push VC B的过程中,系统会调用一次VC A中tableView的scrollViewDidScroll方法,关键是这时调用中传入的contentOffset是有问题的(0,-contentInset.y),所以导致了VC A中的tableView会自动返回头部
解决方法:在VC
A的viewWillDisappear的时候设置tableView的delegate为nil,同时在viewWillAppear中再把tableView的delegate设置回来,这个问题就被解决掉了。
all
in all 问题很奇怪,希望大家不再被同样的问题困扰
记录iOS开发中遇到的奇葩的问题,随时更新。