#ios #swift #uiviewcontroller #uiscrollview #ios-animations
#iOS #swift #uiviewcontroller — контроллер #uiscrollview #ios-анимация
Вопрос:
Я полностью осознаю , что вы не можете добиться того же UIViewController
от а UINavigationController
. Однако моя реализация требует этого. Я должен смахивать жесты. При пролистывании справа налево мне нужно перезагрузить содержимое view (которое является a 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
контент переопределяется вместе с анимацией
Итак, каким должен быть наилучший подход для перезагрузки контента вместе с анимацией при пролистывании?
Комментарии:
1. Что вы подразумеваете под перезагрузкой contentView? Также какую анимацию вы пытаетесь достичь? Вы пытаетесь заставить ScrollView вести себя как NavigationController?
2. @Brandon: я хочу перезагрузить содержимое UIScrollView. Да, я хочу, чтобы анимация была такой же, как UINavigationController.
3. Для эффекта прокрутки с тем же контроллером представления, вероятно, UIPageViewController — хороший выбор. Будет поддерживать чистоту иерархии представлений, а также понятный способ перезагрузки данных. Также управляйте двумя или тремя экземплярами контроллера просмотра одновременно. Таким образом, управление памятью является бесплатным
4. Вы хотите, чтобы это было интерактивно или просто происходило?