Реализация, наиболее близкая к — push тому же UIViewController

#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. Вы хотите, чтобы это было интерактивно или просто происходило?