IOS核心图形重画

IOS核心图形重画,ios,button,rotation,core-graphics,Ios,Button,Rotation,Core Graphics,所以我在核心图形中画了一些东西,当用户按下按钮时,我想旋转它。在我的故事板中,我有一个视图和一个按钮。我有一个Cocoa-Touch类,它是UIView的子类,它将视图的自定义类设置为这个子类。在这里,我有一个属性用于存储我希望图形旋转的度数。在'-(void)drawRect:(CGRect)rect'方法中,我有 int lineRotate = self.rotationAmount; UIBezierPath * line = [UIBezierPath bezierPath]; [li

所以我在核心图形中画了一些东西,当用户按下按钮时,我想旋转它。在我的故事板中,我有一个视图和一个按钮。我有一个Cocoa-Touch类,它是UIView的子类,它将视图的自定义类设置为这个子类。在这里,我有一个属性用于存储我希望图形旋转的度数。在'-(void)drawRect:(CGRect)rect'方法中,我有

int lineRotate = self.rotationAmount;
UIBezierPath * line = [UIBezierPath bezierPath];
[line moveToPoint:CGPointMake(55.0, 55.0)];
[line addLineToPoint:CGPointMake(55.0, 25.0)];
[line applyTransform:CGAffineTransformMakeTranslation(-55, -55)];
[line applyTransform:CGAffineTransformMakeRotation(lineRotate * M_PI/180)];
[line applyTransform:CGAffineTransformMakeTranslation(55, 55)];
[line setLineWidth: 5.0];
[[UIColor blackColor]setStroke];
[line stroke];

我也有一个设置这个旋转挂载的公共方法。从我的ViewController类导入我创建的UIView子类。我有一个类的属性,我初始化它,等等。在按钮的iAction中调用此方法来更改旋转量,后跟setNeedsDisplay,这样做没有任何作用。我需要更改或添加什么才能使按钮正常工作?

我猜问题出在您没有显示的代码中。
UIViewController
通常不需要初始化
UIView
的属性。在控制器的方法中,您可以访问视图作为
self.view
,但通常不自己设置。您是否正在创建第二个视图并修改该视图的
rotationAmount
,而不是
self.view

- (IBAction)actionTapped:(id)sender {
_customView.rotationAmount = 50;
_customView.setNeedsDisplay;
}
在调用setNeedsDisplay之前,请确保更改旋转安装。 正如你在问题中所解释的,我创建了一个项目。我可以旋转这条线