Я пытаюсь нарисовать арку, используя UIBezierPath
. Нет никаких ошибок или предупреждений, и я не вижу никаких явных ошибок, но он просто не будет рисовать. Это мой код:Путь UIBezier, отказавшийся рисовать
- (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];
}
я положил его в отдельном окне, чтобы проверить и разбился на _myString
так что ничего с ним делать? Я попытался добавить точку останова, чтобы увидеть, работает ли она без нее, но затем она снова разбилась. Любые идеи, почему это не работает?
Шага через него с отладчиком и посмотреть, какие значения '' _myString' и A' и '' startAngle' и endAngle' есть. Скорее всего 'a' равно 0, поэтому' startAngle' совпадает с 'endAngle', поэтому вы запрашиваете дугу с нулевым размером, что, конечно же, ничего не рисует. Вы можете легко изменить свой код, чтобы проверить, что происходит, когда 'a' - разные значения, например,' CGFloat a = 1.0; '. –
@ KurtRevis просто проверен, и у них есть значения, поэтому его не так –
Итак, какие значения у них есть? Дайте нам [MCVE] (http://stackoverflow.com/help/mcve). –