TableView横用导致的屏幕旋转的页码错乱问题。

今天偶然遇到了这个问题,因为这个tableview是横用作Scrollview的图片轮播器使用的,但是当屏幕旋转的时候会出现显示错乱问题(就是说旋转屏幕后会出现显示出别的cell)。
期初是想在屏幕旋转后,根据currentOffset计算以后的offset,但是可能是由于有navigation bar的问题,所以导致计算出问题,用windows的frame来计算也会出现错误,故抛弃。

经过研究后发现了暂时的解决方案:
先定义一个IndexPath*类型的全局变量然后先把当前的IndexPath存起来,在cellForRow里面对这个IndexPath进行赋值(因为一屏幕只显示一个cell,所以IndexPath一定是当前屏幕的IndexPath)。然后在屏幕开始旋转前,禁止对IndexPath赋值,然后旋转后,将IndexPath取出,然后用
[_tableview scrollToRowAtIndexPath:_index atScrollPosition:UITableViewScrollPositionMiddle animated:NO];
然后 在开始旋转的时候把tableview的alpha=0;旋转后再=1就可以啦~

评论

此博客中的热门博文

使__attribute__((annotate("xxx")))能作用于OC函数

viewWillAppear不执行的解决办法

iOS中使用xpc/xpc.h