我是编码新手,我目前正在制作指南/参考应用(我的第一个应用)。
我一直在使用界面构建器来完成大部分工作。我知道我需要尽快使用代码,但现在我喜欢用IB学习。
这是我的问题:我的视图中有很多高清图片,加载需要4-5秒才能顺利滚动页面。我想添加一个进度视图栏(在UITableView
和导航栏之间),显示5秒进度,以便让用户知道它仍在加载(我知道活动指示器但是进度视图栏看起来更好,似乎更容易使用)。
有人可以指导我完成所有步骤,以使进度视图栏充当5秒计时器吗?
答案 0 :(得分:2)
让我们按照这种方式实施5分钟progressView,
在.h文件中,
NSTimer * timer;
UIProgressView * progView;
float duration;
在.m文件中
- (void)viewDidLoad
{
[super viewDidLoad];
progView = [[UIProgressView alloc] initWithFrame:CGRectMake(10.0, 0.0, 300.0, 10.0)];
[self.view addSubview:progView];
timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateProgress) userInfo:nil repeats:YES];;
}
-(void)updateProgress
{
duration += 0.1;
progView.progress = (duration/5.0); // here 5.0 indicates your required time duration
if (progView.progress == 1)
{
[timer invalidate];
timer = nil;
}
}
谢谢!
答案 1 :(得分:0)
这应该让你开始:
@property (nonatomic, strong) NSTimer *progressTimer;
@property (nonatomic, assign) CGFloat progress;
@property (nonatomic, strong) UIProgressView *progressView;
- (void)yourMethod
{
if (!self.progressView)
{
self.progressView = [[UIProgressView alloc]initWithFrame:CGRectMake(0, 64, 320, 2)];
self.progressView.progressTintColor = [UIColor greenColor];
[self.navigationController.navigationBar.superview insertSubview:self.progressView belowSubview:self.navigationController.navigationBar];
}
else
{
self.progressView.hidden = NO;
}
self.progressTimer = [NSTimer timerWithTimeInterval:0.1 target:self selector:@selector(updateProgressView) userInfo:nil repeats:YES];
NSTimer *stopProgressTimer = [NSTimer timerWithTimeInterval:5.0 target:self selector:@selector(stopProgressView) userInfo:nil repeats:NO];
[stopProgressTimer fire];
}
- (void)stopProgressView
{
[self.progressTimer invalidate];
self.progress = 0.0f;
self.progressView.hidden = YES;
self.progressView.progress = 0.0f;
}
- (void)updateProgressView
{
self.progress = (self.progress + 0.1f) / 5;
self.progressView.progress = self.progress;
}