【问题标题】:Animate when scrolling using UIScrollView SWIFT使用 UIScrollView SWIFT 滚动时的动画
【发布时间】:2017-09-02 14:44:26
【问题描述】:

当用户水平滚动时,我在动画标签移动到另一个位置时遇到了一些麻烦。

这是我的sn-p:

override func viewDidLoad() {
    super.viewDidLoad()

    buttonTextSpacing(UIButton: vysionButton, lineSpacing: 2.5, UIColor: .black)
    buttonTextSpacing(UIButton: converseButton, lineSpacing: 2.5, UIColor: .black)
    buttonTextSpacing(UIButton: storiesButton, lineSpacing: 2.5, UIColor: .black)

    self.storiesCollectionView.delegate = self
    self.storiesCollectionView.dataSource = self

    // Scroll View
    self.scrollView.contentSize = CGSize(width: self.scrollView.frame.width*2, height: self.scrollView.frame.height)
    self.scrollView.addSubview(storiesCollectionView)
    self.scrollView.showsHorizontalScrollIndicator = false
    self.scrollView.delegate = self


}

func scrollViewDidScroll(scrollUIView: UIScrollView) {
    print("scrollViewDidScroll")
    DispatchQueue.main.async {
        UIView.animate(withDuration: 0.4, delay: 0, options: UIViewAnimationOptions.curveEaseOut, animations: {
            self.scrollLabel.center.x = self.storiesButton.center.x - 1
        }, completion: nil)
    }
}

基本上我试图实现的是,当用户滚动时,动画开始但直到滚动完成到下一个自定义 uiview 才结束(我也启用了分页)。

目前它不这样做,我无法在滚动时调用滚动事件,甚至无法使标签动画(到新位置)。

非常感谢您提供任何建议或帮助。

干杯, 庞

【问题讨论】:

    标签: ios swift uiview uiscrollview uiviewanimation


    【解决方案1】:

    据我了解,您在 scrollView 上有一些标签作为子视图,并且该标签位于您滚动的某些视图上。您可以使用 scrollView.contentOffset.x 代替动画。例如:您需要计算标签的起始位置和结束位置之间的距离。该距离除以 100,得到步长(距离宽度的 1%),需要乘以 scrollView.contentOffset.x。详细说明您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      • 2015-12-26
      • 2012-10-04
      • 2015-05-01
      • 2021-10-09
      • 1970-01-01
      相关资源
      最近更新 更多