Я хочу нарисовать изогнутую линию, пока она не совершит полный оборот и не станет полным кругом, просто контур круга, не заполненный.Это должно быть оживлено в течение нескольких секунд.
Кто-нибудь может указать мне правильное направление?Я уже задавал подобный вопрос на этот вопрос, но я сформулировал его неправильно, поэтому всем было трудно понять, что я имел в виду, и поэтому он потерялся в море вопросов.
Большое спасибо за любыеhelp
[edit]
В настоящее время я делю UIView на подкласс и переопределяю drawRect.Я нашел код для рисования закрашенного круга, но мне требуется только обводка.
- (void)drawRect:(CGRect)rect {
// Drawing code
CGRect allRect = self.bounds;
CGRect circleRect = CGRectInset(allRect, 2.0f, 2.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
// Draw background
CGContextSetRGBStrokeColor(context, self.strokeValueRed, self.strokeValueGreen, self.strokeValueBlue, self.strokeValueAlpha); // white
CGContextSetRGBFillColor(context, 1.0f, 1.0f, 1.0f, 0.1f); // translucent white
CGContextSetLineWidth(context, self.lineWidth);
CGContextFillEllipseInRect(context, circleRect);
CGContextStrokeEllipseInRect(context, circleRect);
// Draw progress
CGPoint center = CGPointMake(allRect.size.width / 2, allRect.size.height / 2);
CGFloat radius = (allRect.size.width - 4) / 2;
CGFloat startAngle = - ((float)M_PI / 2); // 90 degrees
CGFloat endAngle = (self.progress * 2 * (float)M_PI) + startAngle;
CGContextSetRGBFillColor(context, 1.0f, 1.0f, 1.0f, 1.0f); // white
CGContextMoveToPoint(context, center.x, center.y);
CGContextAddArc(context, center.x, center.y, radius, startAngle, endAngle, 0);
CGContextClosePath(context);
CGContextFillPath(context);
}
[edit # 2]
Я изменил код, чтобы удалить все ссылки на заливки, но теперь он не рисуетсячто-нибудь :( есть идеи?
- (void)drawRect:(CGRect)rect
{
// Drawing code
CGRect allRect = self.bounds;
CGContextRef context = UIGraphicsGetCurrentContext();
// Draw background
CGContextSetRGBStrokeColor(context, self.strokeValueRed, self.strokeValueGreen, self.strokeValueBlue, self.strokeValueAlpha); // white
CGContextSetLineWidth(context, 5);
// Draw progress
CGPoint center = CGPointMake(allRect.size.width / 2, allRect.size.height / 2);
CGFloat radius = (allRect.size.width - 4) / 2;
CGFloat startAngle = - ((float)M_PI / 2); // 90 degrees
CGFloat endAngle = (self.progress * 2 * (float)M_PI) + startAngle;
CGContextAddArc(context, center.x, center.y, radius, startAngle, endAngle, 0);
CGContextStrokePath(context);
}
[edit # 3] Решение
Правильно, я чувствую себя как правый придурок! Проблема заключалась в том, что значения цвета обводки не были инициализированы, означая, что линия былабудучи ничьей, но, очевидно, не мог видеть это !!