簡體   English   中英

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM