[英]Change animation in page-based application UIPageViewController
[英]UIPageViewController delay page change animation
我正在開發一個使用UIPageViewController的應用程序。 我注意到如果我太快地更改多個頁面,它會在運行時導致幾個問題。
有沒有辦法在兩次頁面更改之間設置延遲(如2或3毫秒)? 提前致謝。
** * ** * ** * *** 詳細答案 ** * ** * ** * ** * **
解決方案是這樣的:
-(void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed{
if(completed) {
[pageViewController.view setUserInteractionEnabled:NO];
[self performSelector:@selector(enableUserInteraction) withObject:nil afterDelay:0.2];
}
}
-(void)enableUserInteraction{
[self.view setUserInteractionEnabled:YES];
}
在動畫塊中,設置userInteraction = NO直到動畫結束。 這意味着用戶將無法與屏幕交互,從而在完成動畫之前更改頁面。
我把它放在pageViewController:willTransitionToViewControllers:並使用dispatch_after 。 使用此解決方案,用戶無法像在pageViewController中那樣快速刷卡2-3次:didFinishAnimating:previousViewControllers:transitionCompleted:
- (void)pageViewController:(UIPageViewController *)pageViewController willTransitionToViewControllers:(NSArray<UIViewController *> *)pendingViewControllers {
pageViewController.view.userInteractionEnabled = NO;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
pageViewController.view.userInteractionEnabled = YES;
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.