假设你有一个三角形图像,你想在不同的Angular (例如,180度,90度)使用。是否可以在故事板中旋转三角形图像,或者需要通过编程来实现?
ccgok5k51#
您可能会创建一个IBDesignable & IBInspectableUIView子类,它具有一个旋转Angular 属性,并对它包含的图像应用一个变换。IBInspectable允许您在IB的属性检查器中显示自定义视图的自定义属性。创建视图IBDesignable允许您在IB中查看自定义视图对象的预览。
IBDesignable
IBInspectable
UIView
这是一个非常老的线程,但我决定实现一个允许旋转的自定义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中生成以下内容:
的数据
bqf10yzr2#
可以在用户定义的运行时属性中设置layer.transform.rotation.z。检查这个答案:https://stackoverflow.com/a/32150954/2650588
layer.transform.rotation.z
8dtrkrch3#
**是的。**你只能在情节串联图板(界面生成器)中使用,因为它是与图层相关的属性。
只需点击你的视图,转到用户定义的运行时属性,并添加键路径,如下所示:
layer.transform.rotation.z 1.57
字符串
注意事项:
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
4条答案
按热度按时间ccgok5k51#
您可能会创建一个
IBDesignable
&IBInspectable
UIView
子类,它具有一个旋转Angular 属性,并对它包含的图像应用一个变换。IBInspectable
允许您在IB的属性检查器中显示自定义视图的自定义属性。创建视图
IBDesignable
允许您在IB中查看自定义视图对象的预览。编辑:
这是一个非常老的线程,但我决定实现一个允许旋转的自定义UIView,正如我所描述的。现在是2021年,我使用Swift:
字符串
这将在Interface Builder中生成以下内容:
的数据
bqf10yzr2#
可以在用户定义的运行时属性中设置
layer.transform.rotation.z
。检查这个答案:https://stackoverflow.com/a/32150954/26505888dtrkrch3#
**是的。**你只能在情节串联图板(界面生成器)中使用,因为它是与图层相关的属性。
只需点击你的视图,转到用户定义的运行时属性,并添加键路径,如下所示:
字符串
的数据
注意事项:
envsm3lx4#
在编程上,像这样的东西可以提供帮助:
字符串
或者像这样创建一个宏:
型
并使用这种方式:
型
更多:Apple Link