Ich versuche, einen Bogen unter Verwendung UIBezierPath
zu zeichnen. Es gibt keine Fehler oder Warnungen und ich kann keine offensichtlichen Fehler sehen, aber es wird einfach nicht zeichnen. Dies ist mein Code:UIBezier Weg, der sich weigert zu zeichnen
- (void)drawRect:(CGRect)rect {
CGFloat a = 10;
CGFloat width = CGRectGetWidth(self.bounds);
CGFloat height = CGRectGetHeight(self.bounds);
CGPoint center = CGPointMake(width/2, height/2);
CGFloat radius = MAX(width, height);
CGFloat archWidth = 18;
CGFloat archLengthPerA = 5;
CGFloat startAngle = 3 * M_PI /2;
CGFloat endAngle = archLengthPerA * a + startAngle;
UIBezierPath* path = [UIBezierPath bezierPath];
[path addArcWithCenter:center
radius:radius
startAngle:startAngle
endAngle:endAngle
clockwise:YES];
path.lineWidth = archWidth;
[[UIColor colorWithRed:255 green:17 blue:0 alpha:1.0] setStroke];
[path stroke];
}
ich es in einer separaten Ansicht auf den Prüfstand und es auf _myString
abgestürzt so ist, dass alles, was damit zu tun? Ich habe versucht, einen Haltepunkt hinzuzufügen, um zu sehen, ob es ohne es funktioniert hat, aber dann ist es wieder abgestürzt. Irgendwelche Ideen, warum es nicht funktioniert?
Schritt durch sie mit dem Debugger und sehen, welche Werte '_myString' und' a' und 'startAngle' und' endAngle' haben. Am wahrscheinlichsten ist 'a' gleich 0, also ist 'startAngle' das gleiche wie 'endAngle', also verlangt man nach einem Bogen mit der Größe null, der natürlich nichts zeichnet. Sie können Ihren Code leicht ändern, um zu überprüfen, was passiert, wenn 'a' andere Werte hat - zum Beispiel' CGFloat a = 1.0; '. –
@KurtRevis nur überprüft und sie haben Werte, so ist es nicht das –
Also _welche Werte haben sie_? Gib uns einen [MCVE] (http://stackoverflow.com/help/mcve). –