是否可以旋转UIView或UIImageView,比如10或15度,
实际使用用户定义的运行时属性?
或者它只能在代码中完成吗?
(注意......为了谷歌,我提到“角度”和“按度”;它可能会混淆“旋转”设备方向变化的想法。)
或者,您是否可以继承 UIView,以便公开用户定义的运行时属性,这样做呢? (我生锈了:/)
答案 0 :(得分:23)
答案 1 :(得分:4)
在对此答案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