2016-03-30 11 views
2

Ich bin ein Anfänger App-Entwickler. Ich möchte eine App mit einem sich drehenden/drehenden Rad machen, wie es in Trivia Crack ist. Meine Idee war es, ein UIImage mit einem Bild von einem Rad zu verwenden. Wenn der Benutzer auf das Bild tippt, möchte ich das Bild drehen lassen. Das ist nicht schwer für mich, aber der schwierige Teil für mich ist, das Rad zu einer bestimmten Kategorie auf dem Rad drehen zu lassen. Weißt du, wie ich das machen soll? Ich dachte, dass ich mit Grad und Winkeln arbeiten könnte, aber ich weiß nicht, wie man mit Grad in swift arbeitet. Ich hoffe, dass einige von Ihnen mir helfen können!Wie erstelle ich ein drehendes Rad/Bild in swift?

+0

Was meinst du mit "Spin zu bestimmter Kategorie"? Möchten Sie den bildspezifischen Radius drehen? – Ryan

+0

Das Rad ist unterteilt in Kategorien (es ist für ein Quiz), wie Sport, Geschichte und Wissenschaft. Also möchte ich das Rad zu einer der Kategorien drehen (zufällig) –

+0

Ich würde gerne sehen, wie du hadle alle Code – Done

Antwort

0

Sie können NSTimer verwenden, um das Rad zu drehen. wenn Sie das Bild tippen, wird es Timer auslösen es drehen zu beginnen,

timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "rotateWheel", userInfo: nil, repeats: true) 

func rotateWheel() { 
    //set your angle here 
    self.wheel.transform = CGAffineTransformMakeRotation((180.0 * CGFloat(M_PI))/180.0) 
} 

und wann Sie wollen sich drehende Rad zu stoppen. Sie können einfach anrufen,

timer.invalidate() 
+0

Danke, das hat mir sehr geholfen –

+0

Sicher. @ Joaquin van Loon – Rachel

0

Wenn Sie das Bild des Rades drehen möchten. Verwenden Sie Beispielcode, der transform Eigenschaft des Bilds verwendet, und es für 180 Grad zu drehen.

UIView.animateWithDuration(2.0, animations: { 
     self.wheel.transform = CGAffineTransformMakeRotation((180.0 * CGFloat(M_PI))/180.0) 
}) 
+0

Warnung: Dies wird eine einzige Rotation animieren und dann wird es aufhören. –

0

Einmal habe ich sehr ähnliche Arbeit vor getan. Auch wenn es nicht in swift war, ich glaube, es wird nicht schwierig für Sie sein, es zu versuchen.

CABasicAnimation *animation = (CABasicAnimation *)[view.layer animationForKey:@"rotationAnimation"]; 
NSNumber *toValue = [NSNumber numberWithFloat: (M_PI * 2 * round) + [animation.toValue floatValue]]; 
CGFloat duration = round/speed; 

CABasicAnimation* rotationAnimation; 
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; 
rotationAnimation.fromValue  = animation.toValue; 
rotationAnimation.toValue  = toValue; 
rotationAnimation.duration  = duration; 
rotationAnimation.cumulative = YES; 
rotationAnimation.autoreverses = NO; 
rotationAnimation.removedOnCompletion = NO; 
rotationAnimation.fillMode  = kCAFillModeForwards; 
rotationAnimation.additive  = YES; 
rotationAnimation.repeatCount = 1; 

[view.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"]; 

können Sie toValue eingestellt Drehung zu stoppen, wie Sie wollen.

+0

Vielen Dank für die Antwort, löste ich mein Problem! –

Verwandte Themen