Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 动画后上一页上可见的下一页内容_Ios_Swift_Uipageviewcontroller_Uiviewanimation - Fatal编程技术网

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

Ios 动画后上一页上可见的下一页内容,ios,swift,uipageviewcontroller,uiviewanimation,Ios,Swift,Uipageviewcontroller,Uiviewanimation,我有一个带有垂直滚动的UIPageViewController,基本上可以正常工作。但是,我遇到了一个小问题,我还没有解决: 当转换到页面时,UIPageViewController中的每个页面都应该“重置”页面(使已从页面中设置动画的元素返回到页面,也就是说重新设置它们的动画),从而完成: internal func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finishe

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

当转换到页面时,
UIPageViewController
中的每个页面都应该“重置”页面(使已从页面中设置动画的元素返回到页面,也就是说重新设置它们的动画),从而完成:

internal func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool)
问题是,一些在页面外垂直向上设置动画的UI元素(即UIView、UILabel和UIButton)现在在上一页上可见(这看起来很难看,因为当返回上一页时,人们总是可以看到元素如何以动画方式返回下一页)。我想设置“重置”动画的原因是,当没有显示新页面时,甚至会调用函数(见上文)(例如,用户只向下滚动一点,因此只看到下一页的一点内容,然后抬起手指;他所在的页面将触发该功能,这意味着它试图重置,我不想直接(没有动画)将其设置到新位置,因为这看起来更难看)

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


类似于上面的功能,也会考虑页面的更改(swift中有吗?),或者,如果下一页的内容已按前面所述设置动画,则可以不让下一页的内容覆盖上一页(有方法隐藏它们吗?).

在考虑实施一种不太干净的方法时,我自己(下面)设法找到了一种干净的方法,即检测页面中的更改

internal func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
    if completed {
        //calling my reset function
    }
}
如果完成
的话,我觉得这个技巧比索引页面来检测更改要干净得多。因此,我现在在没有任何动画的情况下重置了它…(参见问题,函数后面的段落)