UIViewController
から同じものをプッシュできないことを完全に認識していますUINavigationController
。ただし、私の実装ではそうする必要があります。ジェスチャーをスワイプする必要があります。右から左にスワイプすると、ビューのコンテンツ ( UIScrollView
) をアニメーションと共にリロードする必要があります。左から右へのスワイプではその逆です。私は次のことを試しましたが、期待どおりのアニメーションが得られません:
func leftSwipe()
{
self.scroll_course_detail.frame = CGRect(x: 2*self.scroll_course_detail!.frame.size.width, y: self.scroll_course_detail.frame.origin.y, width: self.scroll_course_detail.frame.size.width, height: self.scroll_course_detail.frame.size.height)
UIView.animate(withDuration: 0.25, animations: {() -> Void in
self.scroll_course_detail.frame = CGRect(x: 0, y: self.scroll_course_detail.frame.origin.y, width: self.scroll_course_detail.frame.size.width, height: self.scroll_course_detail.frame.size.height)
})
}
func rightSwipe()
{
self.scroll_course_detail.frame = CGRect(x: -self.scroll_course_detail!.frame.size.width, y: self.scroll_course_detail.frame.origin.y, width: self.scroll_course_detail.frame.size.width, height: self.scroll_course_detail.frame.size.height)
UIView.animate(withDuration: 0.25, animations: {() -> Void in
self.scroll_course_detail.frame = CGRect(x: 0, y: self.scroll_course_detail.frame.origin.y, width: self.scroll_course_detail.frame.size.width, height: self.scroll_course_detail.frame.size.height)
})
}
アニメーション ブロックの前UIScrollView
に、アニメーションの期間中、背景をはっきりさせるフレームを変更しています。アニメーションとともにコンテンツがオーバーライドされると考えていたUIScrollView
ので、スワイプでアニメーションとともにコンテンツをリロードするための最良の方法は何ですか?