6

是否可以从 XCode 在 Interface Builder 中旋转 UIImageView?就像我可以在 Photoshop 中那样,我可以缩放和旋转图像。

我知道这可以通过代码实现,但是有没有办法在界面构建器中做到这一点?

4

4 回答 4

34

是的,您可以在界面生成器中执行此操作,而无需任何具有layer.transform.rotation.z运行时属性的附加代码。请注意,此值以弧度为单位。

回转

于 2017-03-25T09:11:25.630 回答
7

是的,你可以,但使用一个小技巧。

在你的代码中声明一个像这样的新 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 上直接在界面构建器上使用运行时参数“旋转”。

在此处输入图像描述

显然,界面生成器不会在其内部渲染中旋转视图,因为它只会影响运行时渲染。

于 2015-09-03T15:00:09.637 回答
6

您不能在当前版本的 Xcode 中执行此操作。您可以通过https://feedbackassistant.apple.com/向 Apple 提交功能请求

但是,如果您想这样做,则需要编写一些代码

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

theView.transform = CGAffineTransformRotate(theView.transform, radians)
于 2013-02-01T20:49:02.463 回答
3

不,这在界面构建器中是不可能的,但代码非常简单:

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

CGAffineTransform rotateTransform = CGAffineTransformRotate(CGAffineTransformIdentity,
     RADIANS(120.0));

imageView.transform = rotateTransform;
于 2013-02-01T20:30:27.677 回答