2017-09-02 105 views
1

当用户在水平滚动时滚动标签以移动到另一个位置时,我很不习惯。使用UIScrollView进行滚动时的动画SWIFT

以下是摘录我有:

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

据我所知,你有一些标签上滚动视图子视图和标签位于悬停在滚动的一些看法。您可以使用scrollView.contentOffset.x而不是动画。例如:您需要计算标签起始位置和结束位置之间的距离。这个距离除以100,你会得到step(距离宽度的1%),你需要乘以scrollView.contentOffset.x。提供你的问题的更多细节。