UIPageViewController 在删除最后一张照片时以错误的方向显示动画
UIPageViewController shows an animation in the wrong direction when deleting the last photo
我正在使用具有过渡样式滑动的 UIPageViewController 来实现照片库。当用户滑动浏览照片时,她可以删除单张照片,在这种情况下,画廊会转到下一张照片,同时还有动画。这按预期工作。
如果最后一张照片被删除,我们将转到被删除照片的前一张照片。这也按预期工作,但动画是错误的 — 看起来好像我们要去下一张照片。
我的代码是:
let photo = (viewControllers!.first as! SinglePhotoController).photo
var nextPhoto = Photo.after(photo: photo)
if nextPhoto == nil {
nextPhoto = Photo.before(photo: photo)
print("You deleted the last photo, so showing previous photo")
}
photo.delete {
let nextController = self.makeController(photo: nextPhoto!)
self.setViewControllers([nextController], direction: .forward, animated: true)
}
photo.delete()是删除照片的方法,在主线程调用回调
如何使用不同的动画调用 setViewControllers()?
这是在 iOS 10.
删除最后一张照片时只需使用方向:.reverse即可。
这个效果是暂时的——一旦由 setViewControllers() 触发的动画完成,它就不再有效果。换句话说,导航方向保持不变:如果您有 A、B 和 C,然后删除 C,您将最终得到预期的 A 和 B,而不是 B 和 A。
我正在使用具有过渡样式滑动的 UIPageViewController 来实现照片库。当用户滑动浏览照片时,她可以删除单张照片,在这种情况下,画廊会转到下一张照片,同时还有动画。这按预期工作。
如果最后一张照片被删除,我们将转到被删除照片的前一张照片。这也按预期工作,但动画是错误的 — 看起来好像我们要去下一张照片。
我的代码是:
let photo = (viewControllers!.first as! SinglePhotoController).photo
var nextPhoto = Photo.after(photo: photo)
if nextPhoto == nil {
nextPhoto = Photo.before(photo: photo)
print("You deleted the last photo, so showing previous photo")
}
photo.delete {
let nextController = self.makeController(photo: nextPhoto!)
self.setViewControllers([nextController], direction: .forward, animated: true)
}
photo.delete()是删除照片的方法,在主线程调用回调
如何使用不同的动画调用 setViewControllers()?
这是在 iOS 10.
删除最后一张照片时只需使用方向:.reverse即可。
这个效果是暂时的——一旦由 setViewControllers() 触发的动画完成,它就不再有效果。换句话说,导航方向保持不变:如果您有 A、B 和 C,然后删除 C,您将最终得到预期的 A 和 B,而不是 B 和 A。