是否可以从 XCode 在 Interface Builder 中旋转 UIImageView?就像我可以在 Photoshop 中那样,我可以缩放和旋转图像。
我知道这可以通过代码实现,但是有没有办法在界面构建器中做到这一点?
是否可以从 XCode 在 Interface Builder 中旋转 UIImageView?就像我可以在 Photoshop 中那样,我可以缩放和旋转图像。
我知道这可以通过代码实现,但是有没有办法在界面构建器中做到这一点?
是的,你可以,但使用一个小技巧。
在你的代码中声明一个像这样的新 UIView 类别
@interface UIView (IBRotateView)
@property (nonatomic, assign) CGFloat rotation;
@end
@implementation UIView (IBRotateView)
@dynamic rotation;
- (void)setRotation:(CGFloat)deg
{
CGFloat rad = M_PI * deg / 180.0;
CGAffineTransform rot = CGAffineTransformMakeRotation(rad);
[self setTransform:rot];
}
@end
现在,您可以像这样在您喜欢的任何 UIView 上直接在界面构建器上使用运行时参数“旋转”。
显然,界面生成器不会在其内部渲染中旋转视图,因为它只会影响运行时渲染。
您不能在当前版本的 Xcode 中执行此操作。您可以通过https://feedbackassistant.apple.com/向 Apple 提交功能请求
但是,如果您想这样做,则需要编写一些代码
#define RADIANS(degrees) ((degrees * M_PI) / 180.0)
theView.transform = CGAffineTransformRotate(theView.transform, radians)
不,这在界面构建器中是不可能的,但代码非常简单:
#define RADIANS(degrees) ((degrees * M_PI) / 180.0)
CGAffineTransform rotateTransform = CGAffineTransformRotate(CGAffineTransformIdentity,
RADIANS(120.0));
imageView.transform = rotateTransform;