iPad 的 UIPageViewController 上的脏动画
Posted
技术标签:
【中文标题】iPad 的 UIPageViewController 上的脏动画【英文标题】:Dirty animation on iPad's UIPageViewController 【发布时间】:2015-04-09 12:21:40 【问题描述】:我目前正在开发我的 iPhone 应用程序的 iPad 版本。我有一个UIPageViewController
,其UIViewController
可以前进或后退。
为此我使用
- (void)setViewControllers:(NSArray *)viewControllers direction:(UIPageViewControllerNavigationDirection)direction animated:(BOOL)animated completion:(void (^)(BOOL finished))completion
它在 iPhone 上运行良好,但在 iPad 上动画不是很干净。当动画接近完成时,我会得到一些黑色边距。
我尝试直接从UIPageViewController
触发偶数,它工作正常。
所以我的猜测是动画变脏是因为subViewController
触发了页面更改,并且subViewController
没有在正确的时刻被释放一定存在一些问题。
我的代码在UIViewController
:
- (IBAction)backHandler:(id)sender
UIPageViewController *pvc = (UIPageViewController *) self.parentViewController;
[pvc previousPage];
我的代码在UIPageViewController
:
- (void)previousPage
UIViewController *vc = [self pageViewController:self viewControllerBeforeViewController:[self.viewControllers firstObject]];
[self setViewControllers:@[vc] direction:UIPageViewControllerNavigationDirectionReverse animated:YES completion:nil];
你知道我该如何解决这个动画问题吗?
非常感谢!
【问题讨论】:
【参考方案1】:我想我也有同样的问题。
我解决了调用该方法的问题:
func delayBlock(delay:Double, closure:()->())
dispatch_after(
dispatch_time(
DISPATCH_TIME_NOW,
Int64(delay * Double(NSEC_PER_SEC))
),
dispatch_get_main_queue(), closure)
然后:
delayBlock(0.1)
self.setViewControllers([nextPageVC], direction: UIPageViewControllerNavigationDirection.Forward, animated: true, completion: nil)
试一试,告诉我!
【讨论】:
以上是关于iPad 的 UIPageViewController 上的脏动画的主要内容,如果未能解决你的问题,请参考以下文章
iOS - 这是由 UISegmentedControl 控制的 UIPageViewController,还是这是啥?