使用用户定义的运行时属性旋转(角度)UIView

Rotate (angle) a UIView, using User Defined Runtime Attributes

是否可以旋转 UIView 或 UIImageView,比如说 10 或 15 度,

实际使用用户定义的运行时属性?

还是只能用代码实现?

(注意 .. 我提到 "angle" 和 "by degrees" 是为了 google;它可能会与设备方向的 "rotating" 混淆改变。)


或者,您是否可以 subclass UIView 以这样一种方式公开用户定义的运行时属性,这就是这样做的? (我生锈了:/)

作为此答案的扩展 How to access User Defined Runtime Attribute from the 'sender' object?,您可以将运行时值检索为以度为单位的 NSNumber,然后执行旋转。触发 IBAction 在您希望发生旋转时在界面生成器中。

#define RADIANS(degrees) ((degrees * M_PI) / 180.0)

@interface RTFRotatingView : UIView
@end

@implementation RTFRotatingView

- (IBAction)performRotation:(UIControl *)sender {
    if ([sender respondsToSelector:@selector(keyName)]) {
        NSNumber *degrees = [sender valueForKey:@"keyName"];
        CGAffineTransform rotateTransform = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(degrees.doubleValue));
        self.transform = rotateTransform;
    }
}

@end

您可以为 UIView 个对象使用 layer.transform.rotation.z 键路径。
必须以弧度设置值:

结果:

所有转换关键路径都在 Apple documentation 中呈现。