Если вам просто нужна сплошная полоса, вы можете создать UIView нужного вам размера и размещения, установить его цвет фона и добавить его в свой вид. Это неплохое кодирование, не стыдно использовать UIView для рисования сплошных прямоугольников. :]
Для более сложной графики вам может потребоваться создать собственный подкласс UIView и переопределить его сообщение drawRect, чтобы выполнить какой-либо пользовательский рисунок. Например:
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 4.0);
CGContextSetRGBStrokeColor(context, 1.0, 1.0, 0, 1.0); // opaque yellow
CGContextMoveToPoint(context, x1, y1); // for suitable definition of x1,y1, etc
CGContextAddLineToPoint(context, x2, y2);
CGContextStrokePath(context);
}
или любой другой тип рисунка CGContext *, который вам может понадобиться (например, круговые диаграммы, линейные диаграммы и т. Д.).
Чтобы анимировать полосу, которую вы создаете, добавляя UIView с цветом фона, добавляйте следующее при запуске анимации:
timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(onTimer:) userInfo:nil repeats:YES];
self.startTime = [NSDate date];
, а затем добавьте следующее сообщение (примечание: полоса будет расти вверх).
- (void) onTimer:(NSTimer*)firedTimer
{
float time = [self.startTime timeIntervalSinceNow] * -1;
if (time>kMaxTime)
{
[timer invalidate];
timer = nil;
time = kMaxTime;
}
int size = time * kPixelsPerSecond;
myBar.frame = CGRectMake(x, y - size, width, size);
}