【发布时间】:2011-09-29 04:07:21
【问题描述】:
我正在尝试为 iPad 应用程序制作自定义动画条形图(即,激活时条形高度增加到设置水平)。我对 iOS 开发还很陌生,我只想获得有关如何处理此任务的反馈。
我正在尝试使用this 条目中的答案,我想知道我从这一点开始是否正确。
【问题讨论】:
标签: ios progress-bar
我正在尝试为 iPad 应用程序制作自定义动画条形图(即,激活时条形高度增加到设置水平)。我对 iOS 开发还很陌生,我只想获得有关如何处理此任务的反馈。
我正在尝试使用this 条目中的答案,我想知道我从这一点开始是否正确。
【问题讨论】:
标签: ios progress-bar
如果你只想要一个实心条,你可以创建一个你需要的大小和位置的 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);
}
【讨论】:
idk 关于那个链接,但你可以从这里生成它们 http://preloaders.net/ 这应该会给你一个很好的基础来制作你自己的
【讨论】: