使用UIScrollView SWIFT实现滚动时的动画效果

3

我遇到了一些问题,希望能够通过动画将标签移动到另一个位置,当用户水平滚动时。

以下是我目前的代码片段:

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(我也启用了分页)才结束。
目前它并没有这样做,我不能调用滚动事件,甚至不能在滚动时使标签动画(到新位置)。
非常感谢您提供的任何建议或帮助。
谢谢, Pon
1个回答

1

据我所了解,您在scrollView上有一些标签作为子视图,并且该标签位于您滚动的某些视图之上。您可以使用scrollView.contentOffset.x而不是动画。例如:您需要计算标签起始位置和结束位置之间的距离。将该距离除以100,您将获得步长(距离宽度的1%),您需要将其乘以scrollView.contentOffset.x。请提供更多问题细节。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接