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
}
}
如果完成
的话,我觉得这个技巧比索引页面来检测更改要干净得多。因此,我现在在没有任何动画的情况下重置了它…(参见问题,函数后面的段落)