2017-03-29 19 views
0

전이 스타일 스 와이프로 UIPageViewController를 사용하여 사진 갤러리를 구현하고 있습니다. 사용자가 사진을 스 와이프하면 개별 사진을 삭제할 수 있습니다.이 경우 갤러리는 애니메이션과 함께 다음 사진으로 이동합니다. 이것은 예상대로 작동합니다.마지막 사진을 삭제할 때 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()를 호출하려면 어떻게해야합니까? .reverse 마지막 사진을 삭제하는 경우 :

그냥 방향을 사용

답변

0

아이폰 OS (10)에 있습니다.

이 효과는 일시적입니다. 일단 setViewControllers()에 의해 트리거 된 애니메이션이 완료되면 더 이상 효과가 없습니다. 즉, 탐색 방향은 변경되지 않습니다. A, B 및 C가 있고 C를 삭제하면 A와 B가 B와 A가 아니라 의도 한대로 끝납니다.