表示有點(diǎn)兒無(wú)語(yǔ)了爆价,以為是自己寫的邏輯有問(wèn)題,調(diào)了一個(gè)多小時(shí)媳搪,實(shí)際有點(diǎn)兒沒(méi)有頭緒了铭段,于是google一下,發(fā)現(xiàn)竟然是iOS本身的一個(gè)小Bug秦爆,苦逼的碼農(nóng)真心傷不起啊序愚。
問(wèn)題描述:
iOS6使用UIPageViewController通過(guò)UIPageViewControllerNavigationDirectionReverse向回跳轉(zhuǎn)翻頁(yè)時(shí),總會(huì)出現(xiàn)下一頁(yè)不對(duì)的情況等限,因?yàn)橄乱豁?yè)就是跳轉(zhuǎn)以前的頁(yè)面所以給你的感覺就是好像上一頁(yè)被緩存成下一頁(yè)了爸吮。這種情況大多發(fā)生在跳轉(zhuǎn)的時(shí)候,使用了動(dòng)畫并且切換方式是UIPageViewControllerTransitionStyleScroll.
解決辦法1:
__block YourSelfClass *blocksafeSelf = self;
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:^(BOOL finished){
if(finished)
{
dispatch_async(dispatch_get_main_queue(), ^{
[blocksafeSelf.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:NULL];// bug fix for uipageview controller
});
}
}];
解決辦法2(我用這種):
另外為了避免這種情況發(fā)生望门,也可以:
1.不使用UIPageViewControllerTransitionStyleScroll方式
2.切換時(shí)animated:NO