CGAffineTransform旋转UIButton

时间:2014-06-08 19:25:59

标签: ios uibutton cgaffinetransform

我有一个UIButton。在此按钮上,我应用CGAffineTransform,如下所示:

_mainButton.transform = CGAffineTransformMakeRotation((degrees-heading.trueHeading) * M_PI / 180);

通过这种方式,我可以旋转所有按钮,但我想只旋转背景图像。

因此,myButton.imageView应保留在其固定位置。怎么能做到这个?

2 个答案:

答案 0 :(得分:1)

您必须像这样调整imageView的{​​{1}}属性:

UIButton

ImageView的 按钮的图像视图。 (只读)

_mainButton.imageView.transform = CGAffineTransformMakeRotation((degrees-heading.trueHeading) * M_PI / 180);

<强>讨论

虽然此属性是只读的,但它自己的属性是可读/写的。使用这些属性配置按钮视图的外观和行为。例如:

@property(nonatomic, readonly, retain) UIImageView *imageView

即使尚未显示按钮,imageView属性也会返回一个值。系统按钮的属性值为nil。

直接来自Apple的文档

答案 1 :(得分:0)

试试这个,效果很好:

- (IBAction)toggle:(UIButton *)sender {
[UIView animateWithDuration:0.2 animations:^{
    if (CGAffineTransformEqualToTransform(sender.transform, CGAffineTransformIdentity)) {
        sender.transform = CGAffineTransformMakeRotation(M_PI * 0.999);
    } else {
        sender.transform = CGAffineTransformIdentity;
    }
}];

}