097在进度条中显示进度百分比

效果如下:

ViewController.h

1 #import <UIKit/UIKit.h>
2 #import "KMProgressViewWithLabel.h"
3
4 @interface ViewController : UIViewController
5 @property (strong, nonatomic) KMProgressViewWithLabel *progressViewCustom;
6
7 @end

ViewController.m

 1 #import "ViewController.h"
 2
 3 @interface ViewController ()
 4 - (void)layoutUI;
 5 - (void)updateProgressView:(KMProgressViewWithLabel *)component;
 6 @end
 7
 8 @implementation ViewController
 9
10 - (void)viewDidLoad {
11     [super viewDidLoad];
12
13     [self layoutUI];
14 }
15
16 - (void)didReceiveMemoryWarning {
17     [super didReceiveMemoryWarning];
18     // Dispose of any resources that can be recreated.
19 }
20
21 - (void)layoutUI {
22     self.navigationItem.title = @"在进度条中显示进度百分比";
23     self.view.backgroundColor = [UIColor whiteColor];
24
25     _progressViewCustom = [[KMProgressViewWithLabel alloc] init];
26
27     UIBarButtonItem *barBtnProgress = [[UIBarButtonItem alloc] initWithCustomView:_progressViewCustom];
28     UIBarButtonItem *barBtnFlexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
29     [self setToolbarItems:@[barBtnFlexibleSpace, barBtnProgress, barBtnFlexibleSpace] animated:NO];
30 }
31
32 - (void)viewWillAppear:(BOOL)animated {
33     [self.navigationController setNavigationBarHidden:NO animated:animated];
34     [self.navigationController setToolbarHidden:NO animated:animated];
35 }
36
37 - (void)viewDidAppear:(BOOL)animated {
38     [super viewDidAppear:animated];
39     [self performSelector:@selector(updateProgressView:)
40                withObject:_progressViewCustom
41                afterDelay:5];
42 }
43
44 - (void)viewWillDisappear:(BOOL)animated {
45     [super viewWillDisappear:animated];
46     _progressViewCustom.hidden = YES;
47 }
48
49 - (void)updateProgressView:(KMProgressViewWithLabel *)component {
50     if (!component.hidden) {
51         if (component.progressView.progress < 1.0) {
52             component.progressView.progress += 0.1;
53             component.lblProgress.text = [NSString stringWithFormat:@"下载进度: %.0f%%", component.progressView.progress * 100];
54             [self performSelector:@selector(updateProgressView:)
55                        withObject:component
56                        afterDelay:1];
57         } else {
58             component.lblProgress.text = @"下载成功";
59         }
60     }
61 }
62
63 @end

KMProgressViewWithLabel.h

1 #import <UIKit/UIKit.h>
2
3 @interface KMProgressViewWithLabel : UIView
4 @property (strong, nonatomic) UILabel *lblProgress;
5 @property (strong, nonatomic) UIProgressView *progressView;
6
7 @end

KMProgressViewWithLabel.m

 1 #import "KMProgressViewWithLabel.h"
 2
 3 @interface KMProgressViewWithLabel ()
 4 - (void)layoutUI;
 5 @end
 6
 7 @implementation KMProgressViewWithLabel
 8
 9 - (id)init {
10     if (self = [super init]) {
11         [self layoutUI];
12     }
13     return self;
14 }
15
16 - (void)layoutUI {
17     _lblProgress = [[UILabel alloc] init];
18     _lblProgress.textAlignment = NSTextAlignmentCenter;
19     _lblProgress.textColor = [UIColor whiteColor];
20     _lblProgress.font = [UIFont boldSystemFontOfSize:14.0];
21     _lblProgress.shadowColor = [UIColor blackColor];
22     [self addSubview:_lblProgress];
23
24     _progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleBar];
25     [self addSubview:_progressView];
26
27     self.frame = CGRectMake(0, 0, _progressView.bounds.size.width, _progressView.bounds.size.height * 5);
28 }
29
30 /**
31  *  重新绘制UILabel和UIProgressView的位置和大小外观
32  */
33 - (void)layoutSubviews {
34     CGRect newPoint = self.bounds;
35     newPoint.size.height -= _progressView.frame.size.height;
36     _lblProgress.frame = newPoint;
37
38     newPoint = _progressView.frame;
39     newPoint.origin.y = _lblProgress.frame.size.height + 4.0;
40     _progressView.frame = newPoint;
41 }
42
43 @end

AppDelegate.h

1 #import <UIKit/UIKit.h>
2
3 @interface AppDelegate : UIResponder <UIApplicationDelegate>
4 @property (strong, nonatomic) UIWindow *window;
5 @property (strong, nonatomic) UINavigationController *navigationController;
6
7 @end

AppDelegate.m

 1 #import "AppDelegate.h"
 2 #import "ViewController.h"
 3
 4 @interface AppDelegate ()
 5 @end
 6
 7 @implementation AppDelegate
 8
 9 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
10     _window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
11     ViewController *viewController = [[ViewController alloc] init];
12     _navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
13     _window.rootViewController = _navigationController;
14     //[_window addSubview:_navigationController.view]; //当_window.rootViewController关联时,这一句可有可无
15     [_window makeKeyAndVisible];
16     return YES;
17 }
18
19 - (void)applicationWillResignActive:(UIApplication *)application {
20 }
21
22 - (void)applicationDidEnterBackground:(UIApplication *)application {
23 }
24
25 - (void)applicationWillEnterForeground:(UIApplication *)application {
26 }
27
28 - (void)applicationDidBecomeActive:(UIApplication *)application {
29 }
30
31 - (void)applicationWillTerminate:(UIApplication *)application {
32 }
33
34 @end
时间: 2024-10-13 00:15:42

097在进度条中显示进度百分比的相关文章

HTML5动画(二):Canvas 实现圆形进度条并显示数字百分比

实现效果 1.首先创建html代码 <canvas id="canvas" width="500" height="500" style="background:#000;"></canvas> 2.创建canvas环境 var canvas = document.getElementById('canvas'), //获取canvas元素 context = canvas.getContext('2d

JQuery和Servlet实现文件上传进度条,能显示上传速度,上传的百分比等

原文:JQuery和Servlet实现文件上传进度条,能显示上传速度,上传的百分比等 源代码下载地址:http://www.zuidaima.com/share/1550463319542784.htm JQuery和Servlet实现文件上传进度条,能显示上传速度,上传的百分比等

Android官方开发文档Training系列课程中文版:通知用户之在通知中显示进度

原文地址:http://android.xsoftlab.net/training/notify-user/display-progress.html#FixedProgress 通知中包含了一个进度指示器,用来向用户展示一项正在进行中的工作状态.如果你可以确保任务会花费多长时间,并且可以在任何时候得知它完成了多少工作,那么就可以使用确定样式的指示器(一个进度条).如果不能确定任务需要花费的时间,可以使用不确定样式的指示器(一个活动的指示器). 进度指示器由ProgressBar类实现. 使用进

【Qt5开发及实例】10、关于进度条的显示

平常我们下载东西总会有一个显示下载了多少的进度条,我们今天来实现一下. 这里有两种显示方式 可以选择,第一个是用了 QProgressBar控件,第二个是用了QProgressDialog控件 progressdlg.h /** * 书本:[Qt5开发及实例] * 功能:为了实现进度条的显示 * 文件:progressdlg.h * 时间:2015年1月2日15:27:10 * 作者:cutter_point */ #ifndef PROGRESSDLG_H #define PROGRESSDL

Winform之跨线程访问控件(在进度条上显示字体)

此文章对于遇到必须使用线程但是没有办法在线程内操作控件的问题的处理  有很好的解决方案(个人认为的.有更好的方案欢迎交流.) 在做跨线程访问之前我们先了解下我们所做的需要达到的效果: 这个是批量的将xml文件导入sqlite数据库   每个xml有将近3000的节点  每个节点有5个属性,如果我们不用线程那么在数据导入的过程中   程序很可能卡死   而且基本上动不了,用户的体验性就很差. 所以我们对向数据库添加数据的地方使用了线程: Thread thread = new Thread(new

Android中显示进度的控件

显示进度的控件-------------------------ProgressBar:进度条核心属性包括:1) style:表示进度条的显示样式2) android:max:表示进度条的最大刻度3) android:progress:表示进度条当前的进度控制显示进度的方法:void setProgress(int progress)如果进度条没有配置为水平的进度条,则会显示为圆形进度条,这种圆形进度条没有进度的概念,通常用于例如关机.更新系统等时间完全不确定的.亦可以不需要告之用户进度的应用场

iOS自定义进度条高度(UIProgressView进度条高度改变的实现)

今天自定义了iOS中的进度条,发现系统的进度条高度无法改变, 现在自己封装了一种进度条(实际是是UIView而不是UIProgressView),可以改变进度条的高度,非常好用,分享给大家,直接上代码: //  CTWBProgress.h //  Created by WBapple on 16/7/31. //  Copyright © 2016年 王彬. All rights reserved. // #import <UIKit/UIKit.h> @interface CTWBProg

自定义圆形进度条 自定义倒计时进度条

自定义圆形进度条 自定义倒计时进度条 版权声明:转载必须注明本文转自严振杰的博客: http://blog.csdn.net/yanzhenjie1003 此控件源码已开源到Github:https://github.com/yanzhenjie/CircleTextProgressbar,欢迎Star. 欢迎加入我博客左侧的QQ交流群一起探讨. 效果预览 源代码传送门:https://github.com/yanzhenjie/CircleTextProgressbar 实现与原理 这个文字圆

CSS实现进度条和订单进度条

原文:CSS实现进度条和订单进度条 最近半个月为了期末考试,可要了学渣我半瓶血啊!今天本该好好复习的,可是状态不好,就随便找点乐子玩一玩,于是乎就想起之前面试时面试官给的一道题(见标题),那就弄点简单的小玩意给自己洗洗脑咯. 简单地效果图如下: CSS实现进度条: html结构: <div id="progress"> <span>70%</span> </div> css样式: #progress{ width: 50%; height