Swift 如何在滚动UITableView期间制作动画

Swift 如何在滚动UITableView期间制作动画,swift,uitableview,scroll,core-animation,Swift,Uitableview,Scroll,Core Animation,我有一个问题,在滚动UITableView期间,是否可以在旋转UILabel时制作动画?那我怎么做呢?当用户开始滚动时,UILabel将根据滚动开始旋转!Objective-C和Swift都适合我 对不起,我的英语不好: 基于我在swift中编写的Fogmeister解决方案,它运行良好 斯威夫特4 滚动时,请尝试找出滚动视图的Y位置。如果条件满足,则制作动画。是的,这是可能的。但你没有表现出任何努力或解决任何问题。我是coreAnimation新手,不知道怎么做@zombie不要用动画来做这件

我有一个问题,在滚动UITableView期间,是否可以在旋转UILabel时制作动画?那我怎么做呢?当用户开始滚动时,UILabel将根据滚动开始旋转!Objective-C和Swift都适合我

对不起,我的英语不好:

基于我在swift中编写的Fogmeister解决方案,它运行良好

斯威夫特4
滚动时,请尝试找出滚动视图的Y位置。如果条件满足,则制作动画。

是的,这是可能的。但你没有表现出任何努力或解决任何问题。我是coreAnimation新手,不知道怎么做@zombie不要用动画来做这件事。只需使用滚动视图代理并根据偏移设置旋转。因为滚动视图正在设置动画,所以仅设置旋转将使其看起来像正在设置动画。我找不到[self-scrollView:scrollView didScrollToPercentageOffset:CGPointMakepercentageHorizontalOffset,percentageVerticalOffset]的方法;在斯威夫特,有什么想法吗@Fogmeister@mohamadrezakoohkan阅读文章的其余部分。这个方法是我写的。
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
      let maximumHorizontalOffset: CGFloat = scrollView.contentSize.width - scrollView.frame.width
      let currentHorizontalOffset: CGFloat = scrollView.contentOffset.x
      let maximumVerticalOffset : CGFloat = scrollView.contentSize.height - scrollView.frame.height;
      let currentVerticalOffset : CGFloat = scrollView.contentOffset.y;
      let percentageVerticalOffset : CGFloat = currentVerticalOffset / maximumVerticalOffset;
      let percentageHorizontalOffset: CGFloat = currentHorizontalOffset / maximumHorizontalOffset;
      scrollMyView(scrollView, didScrollToPercentageOffset: CGPoint(x: percentageHorizontalOffset, y: percentageVerticalOffset))

    }

    func scrollMyView(_ scrollView: UIScrollView?, didScrollToPercentageOffset percentageOffset: CGPoint) {
       UIView.animate(withDuration: 0.5, animations: {
         self.myImageView.transform = CGAffineTransform(rotationAngle: (self.rotate(forOffsetPercentage: percentageOffset.y) * .pi) / 1)
       })
     }


    func rotate(forOffsetPercentage percentage: CGFloat) -> CGFloat {

      let min: CGFloat = 1.0
      let max: CGFloat = 360.0

      let value : CGFloat = (max - min) * percentage + min

    return value
}