嗨,我想在我的iPhone应用程序中使用进度条,如 ,如果一个人开始旅程从10:00 am开始并于11:00 am完成,那么每5分钟我会更新进度与当前时间进行比较, 怎么可能在Objective-C中使用基于时间的ProgressBar
0
A
回答
2
你可以使用一个简单的NSTimer
来实现这一目标:
当然,在viewDidLoad
,这些变量都需要在你的头文件中声明。
UIProgressView *myProgressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];
float someFloat = 0;
NSTimer *myTimer = [NSTimer scheduledTimerWithTimeInterval:300 target:self selector:@selector(methodToUpdateProgress) userInfo:nil repeats:YES];
那么这将更新进度视图(假设最小/最大值是0-100)
- (void)methodToUpdateProgress
{
if(someFloat == 100){
[myTimer invalidate];
}else{
someFloat = someFloat + 12;
[myProgressView setProgress:someFloat animated:YES];
}
}
此外,如果在此被称为时间实际上是一个关注这个例子中应该可以帮助你很多。 引述:How do I use NSTimer?
NSDate *d = [NSDate dateWithTimeIntervalSinceNow: 60.0];
NSTimer *t = [[NSTimer alloc] initWithFireDate: d
interval: 1
target: self
selector:@selector(onTick:)
userInfo:nil repeats:YES];
NSRunLoop *runner = [NSRunLoop currentRunLoop];
[runner addTimer:t forMode: NSDefaultRunLoopMode];
[t release];
注:这是一个非常粗略的例子,但它应该得到整个点。希望这可以帮助!
0
的ivars:
NSDate *_startDate = ....
NSDate *_finishDate = ....
UIProgressBarView *_progressBar = ....
triggerMethod:
- (void)start
{
[self updateProgressBar];
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:updateInterval
target:self
selector:@selector(updateProgressBar)
userInfo:nil
repeats:YES];
}
更新progressbarview
- (void)updateProgressBar
{
NSTimeInterval diff = [_finishDate timeintervalSince:_startDate];
NSTimeInterval pastTime = [_finishDate timeIntervallSinceNow];
[_progressBar setProgress:pastTime/diff animated:YES];
}
不要忘记无效,当它完成计时器和dealloc方法。
如果在代码的其他地方保存完成并开始日期。然后,即使解除分配,您也可以使用相同的状态重新创建视图。这意味着用户不需要打开该视图1小时。例如。他/她在30分钟后关闭并打开。
相关问题
- 1. 使基于FPS和时间
- 2. 使ProgressBar可用空间
- 3. 在Android的ProgressBar上显示时间
- 4. C++基于时间
- 5. 基于时间戳
- 6. 基于时间戳
- 7. Android:在ProgresDialog中使用ProgressBar
- 8. 在C++中使用Gtkmm ProgressBar
- 9. Python的基于时间的旋转文件在使用时间记录
- 10. 基于时间的ID
- 11. 基于时间的旋转
- 12. 基于时间的数据
- 13. 基于时间的条件
- 14. Flash中的基于时间的动画
- 15. neo4j中的基于时间的数据
- 16. Elixir中的基于时间的测试
- 17. datepicker禁用基于时间的日期
- 18. SQL中基于时间的唯一ID
- 19. JavaScript中的基于时间轮询
- 20. 基于时间的数据,我们能使用基于时间的类型,而不是基于时间的指标弹性搜索
- 21. 基于设备时间在timepicker中设置默认时间
- 22. 使用ProgressBar四舍五入音频文件的持续时间
- 23. 基于时间间隔的节流
- 24. 在Spring JMS集成中配置基于时间间隔的cron
- 25. 在iPhone中创建基于时间的提醒应用程序
- 26. 在R中创建基于时间的用户会话
- 27. 在NodeJs中建模基于时间的应用程序
- 28. 如何在ASP.NET中使用基于IAppBuilder的Owin中间件5
- 29. 在Python中易于使用时间戳
- 30. 添加基于时间