动画后的上一页可见下页的内容

时间:2017-07-22 17:36:48

标签: ios swift uipageviewcontroller uiviewanimation

我有UIPageViewController垂直滚动,基本上可以正常工作。但是,我遇到了一个我无法解决的小问题:

UIPageViewController中的每个页面都应该"重置"转换到页面didFinishAnimating并完成后,页面(使页面中已设置动画的元素返回到它,以便将它们设置为动画):

internal func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool)

问题在于,在页面外垂直向上动画的一些UI元素(即UIView,UILabel和UIButton)现在在前一页上可见(这看起来很丑陋,因为人们总是看到元素如何回落当一个人回到上一页时,动画地到下一页)。我想动画"重置"的原因是在没有显示新页面的情况下甚至调用函数(见上文)(例如,用户向下滚动一点,因此只看到下一页的一点然后抬起他的手指;他已经在的页面将触发该功能意味着它试图重置并且我不想直接(没有动画)将其设置到新位置,因为它看起来更加丑陋)。

因此,有两种方法可以解决这个问题:

像上面那样的函数也会考虑页面的变化(swift中有一个吗?)或者如果这些函数已被动画化为不让下一页的内容超过前一页的方法之前描述的,向上和向外翻页(有没有办法隐藏它们?)。

1 个答案:

答案 0 :(得分:0)

在考虑实施一种不那么干净的方式时,我设法找到一种干净的方式(下面),即检测页面的变化。

internal func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
    if completed {
        //calling my reset function
    }
}
与索引页面以检测更改相比,

if completed做了我认为相当干净的技巧。因此,我现在没有任何动画重置它...(参见问题,功能后的段落)