Comment est-ce que j'animerais un cercle sur l'iPhone de sorte que l'arc commence à «0 degrés» et se termine à «360 degrés»?Arc/animation de cercle dans l'iphone
Advance Merci, Sam
Comment est-ce que j'animerais un cercle sur l'iPhone de sorte que l'arc commence à «0 degrés» et se termine à «360 degrés»?Arc/animation de cercle dans l'iphone
Advance Merci, Sam
Vous devez lire le Quartz 2D Programming Guide's section on arcs. (Je suppose que vous créez une application avec l'API Cocoa Touch, pas une application Web.) Vous devez également savoir comment configurer une animation personnalisée. Vous devrez créer un UIView ou CALayer personnalisé pour faire le dessin, et créer une propriété (degré d'arc) qui peut être animée avec un objet CAAnimation. Alternativement, vous pouvez contrôler l'animation en utilisant un NSTimer à la place. Vous avez à peu près avoir une compréhension de ces classes (et d'autres) pour le retirer.
vous devriez lire la documentation que Felixyz fourni et si vous voulez un exemple de comment animer le cercle jeter un oeil sur le MBProgressHUD
à ce lien link text. Le chargeur a deux modes un avec un UIViewActivityIndicator
et un indicateur de progression (un cercle de remplissage qu'il est animé de 0 à 360 degrés) je pense que le dernier mode est ce que vous voulez.
le code est de mise en jachère copier/coller de cette mise en œuvre qui anime le cercle:
- (void)drawRect:(CGRect)rect {
CGRect allRect = self.bounds;
CGRect circleRect = CGRectMake(allRect.origin.x + 2, allRect.origin.y + 2,
allRect.size.width - 4, allRect.size.height - 4);
CGContextRef context = UIGraphicsGetCurrentContext();
// Draw background
CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 1.0); // white
CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 0.1); // translucent white
CGContextSetLineWidth(context, 2.0);
CGContextFillEllipseInRect(context, circleRect);
CGContextStrokeEllipseInRect(context, circleRect);
// Draw progress
float x = (allRect.size.width/2);
float y = (allRect.size.height/2);
CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0); // white
CGContextMoveToPoint(context, x, y);
CGContextAddArc(context, x, y, (allRect.size.width - 4)/2, -(PI/2),
(self.progress * 2 * PI) - PI/2, 0);
CGContextClosePath(context); CGContextFillPath(context);
}
mais lisez la documentation d'abord! espère que cela aide
Ici vous pouvez trouver un exemple de code sur l'animation du cercle:
Vous voulez animer le dessin d'un cercle? – Daniel
C'est ce qu'il a dit. – Felixyz
Pouvez-vous fournir plus d'informations, telles que l'API de dessin que vous souhaitez utiliser (au minimum)? Nous ne pouvons pas vous aider jusqu'à ce que vous fournissiez beaucoup plus d'informations que ce que vous avez jusqu'ici. –