我需要在iOS中创建一个圆形评级表,它就像一个UISlider只绕圆圈弯曲3/4。我需要在一个锚点周围旋转一个UIImageView(它是一个评级针),通过拖动一个看不见的可触摸手柄区域,它将跟随针尖。针的角度将确定一个值。
我正在努力寻找一个优雅的解决方案。有什么想法吗?
答案 0 :(得分:6)
您是否尝试过使用anchorPoint
基础层的UIImageView
属性?如果您有一个CGPoint
表示要围绕它旋转的点(在图像视图的坐标中),您可以设置图层的锚点:
CGRect imageBounds = self.needleImageView.bounds;
[self.needleImageView.layer setAnchorPoint:CGPointMake(rotationPoint.x / imageBounds.size.width, rotationPoint.y / imageBounds.size.height)];
确保图像视图的center
属性也设置为适当的位置,然后应用旋转变换以围绕图层的锚点旋转:
self.needleImageView.transform = CGAffineTransformRotate(self.needleImageView.transform, angleInRadians);
请记住,您需要导入<QuartzCore/QuartzCore.h>
才能访问图层的属性。