iOS中 UIProgressView 技术分享

简介:  UIProgressView 继承自UIView,用来显示进度的,如音乐,视频的缓冲进度,文件的上传下载进度等.让用户知道当前操作完成了多少,离操作结束还有多远 AppDelegate.

 UIProgressView 继承自UIView,用来显示进度的,如音乐,视频的缓冲进度,文件的上传下载进度等.让用户知道当前操作完成了多少,离操作结束还有多远

AppDelegate.m

  ProgressViewController *progressVC = [[ProgressViewController alloc]init];
    self.window.rootViewController = progressVC;
    [progressVC release];

ProgressViewController.m

@interface ProgressViewController ()
@property (nonatomic,retain) UIProgressView *progressView;
@property (nonatomic,retain) UILabel *label;
@property (nonatomic,retain) NSTimer *timer;
@end

@implementation ProgressViewController
- (void)dealloc
{
    self.progressView = nil;
    self.label = nil;
    self.timer = nil;
    [super dealloc];
}
介绍相关   UIProgressView 的属性及用法:
- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor brownColor];
    
     //UIProgressView 继承自UIView,用来显示进度的,如音乐,视频的缓冲进度,文件的上传下载进度等.让用户知道当前操作完成了多少,离操作结束还有多远
    
    //1.创建一个progress对象,有自己的初始化方法,创建的同时指定progress的样式,是个枚举,系统提供了2种样式
    self.progressView = [[UIProgressView alloc]initWithProgressViewStyle:(UIProgressViewStyleDefault)];
    
    //设置progress的frame,不用设置高度,设置的高度对进度条的高度没影响
    _progressView.frame = CGRectMake(20, 150, 280, 0);
    
    //2.配置属性
    //2.1 设置当前进度值,范围在0.0~1.0,不可以修改最大值和最小值,默认值是0.0
//    _progressView.progress = 0.5;
    
    //2.2 设置轨道(未走过进度)的颜色
    _progressView.trackTintColor = [UIColor whiteColor];
    
    //2.3 设置进度条(已走过进度)的颜色
    _progressView.progressTintColor = [UIColor redColor];
    
    //3.添加到self.view
    [self.view addSubview:self.progressView];
    
    //4.释放
    [self.progressView release];
    
    
    
    //创建一个定时器
    self.timer = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(progressChanged) userInfo:nil repeats:YES];
    
    //调用label布局
    [self layoutLable];
}

布局label:

- (void)layoutLable{
    self.label = [[UILabel alloc]initWithFrame:(CGRectMake(120, 200, 80, 40))];
    _label.backgroundColor = [UIColor greenColor];
    _label.font = [UIFont systemFontOfSize:22];
    [self.view addSubview:self.label];
}

实现定时器的方法:

- (void)progressChanged{
    if (_progressView.progress >= 1.0) {
        [self.timer invalidate];
    }
    _progressView.progress += 0.01;
    
    //找一个float类型的变量接受当前progress的数值
    float progress = self.progressView.progress * 100;
    //使用接受的数值初始化一个字符串,用于label的显示
    NSString *string = [NSString stringWithFormat:@"%.1f%%",progress];
    _label.text = string;
    self.label.textAlignment = NSTextAlignmentCenter;
}
最终效果:

目录
相关文章
|
iOS开发
iOS UIProgressView控件用法
iOS UIProgressView控件用法
237 0
|
iOS开发 Swift
iOS - UIProgressView
前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIProgressView : UIView @available(iOS 2.0, *) public class UIProgressView : UIView, NSCoding...
1091 0
|
iOS开发
iOS中大流中的自定义cell 技术分享
AppDelegate.m指定根视图 self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:[[RootTableViewController alloc]...
713 0
|
监控 iOS开发
iOS中 WGAFN_网络监控 技术分享
需要用到第三方AFNetworking/SVProgressHUD 没有的可以关注我微博私信我.http://weibo.com/hanjunqiang AppDelegate.m #import "AFNetworking.
762 0
|
iOS开发
iOS中 轮播图放哪最合适? 技术分享
我们知道,轮播图放在cell或collectionViewCell上会影响用户层级交互事件,并且实现起来比较麻烦,现在推出一个技术点:答题思路是:将UIScrollView放在UIView或UICollectionView或者UITableView上,将UIScrollView的y设为需要的大小...
807 0
|
Android开发 iOS开发
iOS中 UIWebView加载网络数据 技术分享
直奔核心: #import "TechnologyDetailViewController.h" #define kScreenWidth [UIScreen mainScreen].bounds.
885 0