xcode 是否可以在故事板中旋转图像,或者必须通过编程来实现?

hgc7kmma  于 2023-08-07  发布在  其他
关注(0)|答案(4)|浏览(114)

假设你有一个三角形图像,你想在不同的Angular (例如,180度,90度)使用。
是否可以在故事板中旋转三角形图像,或者需要通过编程来实现?

ccgok5k5

ccgok5k51#

您可能会创建一个IBDesignable & IBInspectableUIView子类,它具有一个旋转Angular 属性,并对它包含的图像应用一个变换。
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中生成以下内容:


的数据

bqf10yzr

bqf10yzr2#

可以在用户定义的运行时属性中设置layer.transform.rotation.z。检查这个答案:https://stackoverflow.com/a/32150954/2650588

8dtrkrch

8dtrkrch3#

**是的。**你只能在情节串联图板(界面生成器)中使用,因为它是与图层相关的属性。

只需点击你的视图,转到用户定义的运行时属性,并添加键路径,如下所示:

layer.transform.rotation.z 1.57

字符串


的数据

注意事项:

  • 该值以弧度为单位。例如,旋转90度放1.57。
  • 您只能在运行时看到更改。
envsm3lx

envsm3lx4#

在编程上,像这样的东西可以提供帮助:

//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.


更多:Apple Link

相关问题