iOS uiscrollview在用户滚动时旋转图像

时间:2016-08-08 23:21:14

标签: ios animation uiscrollview

我有一个带有图像的水平滚动视图,当用户向左或向右滚动时我需要旋转它。当用户在屏幕上移动滚动时,它需要旋转。因此,如果用户向中间滚动并停止图像应该中途转动等等。我看了几个例子,但似乎没有任何东西给我正确的结果。请有人帮忙。

提前致谢

3 个答案:

答案 0 :(得分:0)

您需要实现scrollViewDidScroll方法,然后将旋转矩阵应用于图像。要旋转UIIMage,您可以执行此处概述的操作。 How to Rotate a UIImage 90 degrees?

然而,这在平移手势识别器中会更好。平移手势将为您提供有关用户平移的距离的信息,然后您可以根据该距离旋转图像。

答案 1 :(得分:0)

旋转图像不利于提高性能。您可以在用户滚动时更好地设置图片视图的旋转变换。像这样:

imageView.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2))

答案 2 :(得分:0)

垂直滚动和Swift 5:

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let topOffset = scrollView.contentOffset.y
    let angle = -topOffset * 2 * CGFloat(Double.pi / 180)
    self.myImageView.transform = CGAffineTransform(rotationAngle: angle)
}

不要忘记在viewDidLoad中这样做:

self.scrollView.delegate = self