2017-01-19 7 views

ответ

1

ScrollView имеет scrollViewDidScroll вы можете использовать его для обнаружения прокрутки и использовать метод animate(withDuration duration: TimeInterval, animations: @escaping() -> Swift.Void) от UIView изменить высоту вашего StackView. Это, наверное, самое простое решение.

Edit:

, если вы хотите, чтобы обнаружить взаимодействие ранее попробовать scrollViewWillBeginDragging(_ scrollView: UIScrollView). Если это также не решит вашу проблему, попробуйте создать свой собственный собственный жест и добавить его в scrollview.

+0

Этот метод работает нормально, но он работает только после того, как свиток завершен. Я хочу оживить во время свитка. –

1

Я получил его для работы после следующих Axel's совет. Введите код:

var lastContentOffset: CGPoint! 

func scrollViewWillBeginDragging(_ scrollView: UIScrollView) { 
    lastContentOffset = scrollView.contentOffset 
} 

func scrollViewWillBeginDecelerating(_ scrollView: UIScrollView) { 
    if lastContentOffset.y > scrollView.contentOffset.y { 
     print("Going up!") 
     if topBarStackView.isHidden == true{ 
      UIView.animate(withDuration: 0.2, animations: { 
       self.topBarStackView.isHidden = false 
      }) 
     } 
    } else { 
     print("Going down!") 
     if topBarStackView.isHidden == false { 
      UIView.animate(withDuration: 0.2, animations: { 
       self.topBarStackView.isHidden = true 
      }) 
     } 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^