假设您有一个三角形图像,想在不同的角度使用它(例如180度、90度)。
在Storyboard中旋转三角形图像是否可行,还是需要以编程的方式实现?
假设您有一个三角形图像,想在不同的角度使用它(例如180度、90度)。
在Storyboard中旋转三角形图像是否可行,还是需要以编程的方式实现?
您可以创建一个IBDesignable
和IBInspectable
UIView
子类,该子类具有旋转角度属性,并对其包含的图像应用变换。
IBInspectable
允许您在IB的“属性检查器”中公开自定义视图的自定义属性。
将视图设置为IBDesignable
允许您在IB中预览自定义视图对象。
这是一个非常古老的帖子,但我决定实现一个允许旋转的自定义UIView,就像我所描述的那样。由于现在是2021年,我使用了Swift:
@IBDesignable class RotatableView: UIView {
@objc @IBInspectable var rotationDegrees: Float = 0 {
didSet {
print("Setting angle to \(rotationDegrees)")
let angle = NSNumber(value: rotationDegrees / 180.0 * Float.pi)
layer.setValue(angle, forKeyPath: "transform.rotation.z")
}
}
}
这将在Interface Builder中呈现如下:
可以在用户定义的运行时属性中设置layer.transform.rotation.z
。请查看此答案:https://dev59.com/JlwY5IYBdhLWcg3w9rso#32150954
//rotate rect
myImageView.transform = CGAffineTransformMakeRotation(M_PI_2); //90 degree//rotation in radians
//For 180 degree use M_PI
#define DEGREES_TO_RADIANS(degree) (M_PI * (degree) / 180.0)
CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(90));//here may be anything you want 45/90/180/270 etc.
更多信息: 苹果链接
myImageView.transform = CGAffineTransform(rotationAngle: CGFloat(M_PI_2 * 3))
- Ahmed Khedr