096实现一个蓝色进度条效果(扩展知识:UIActionSheet和UIAlertView的使用)

效果如下:

ViewController.h

1 #import <UIKit/UIKit.h>
2
3 @interface ViewController : UIViewController<UIActionSheetDelegate, UIAlertViewDelegate>
4 @property (strong, nonatomic) UIProgressView *progressView;
5
6 @end

ViewController.m

 1 #import "ViewController.h"
 2
 3 @interface ViewController ()
 4 - (void)layoutUI;
 5 - (void)updateProgressView:(UIProgressView *)progressView;
 6 - (void)showAlert:(NSString *)msg;
 7 @end
 8
 9 @implementation ViewController
10
11 - (void)viewDidLoad {
12     [super viewDidLoad];
13
14     [self layoutUI];
15 }
16
17 - (void)didReceiveMemoryWarning {
18     [super didReceiveMemoryWarning];
19     // Dispose of any resources that can be recreated.
20 }
21
22 - (void)layoutUI {
23     _progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault]; //设置进度条样式;默认值是UIProgressViewStyleDefault,设置的枚举值决定了进度条的高度大小
24     _progressView.frame = CGRectMake(0, 0, 220, 0);
25     _progressView.center = self.view.center;
26     [self.view addSubview:_progressView];
27 }
28
29 - (void)viewDidAppear:(BOOL)animated {
30     [super viewDidAppear:animated];
31     [self performSelector:@selector(updateProgressView:)
32                withObject:_progressView
33                afterDelay:5];
34 }
35
36 - (void)viewWillDisappear:(BOOL)animated {
37     [super viewWillDisappear:animated];
38     _progressView.hidden = YES;
39 }
40
41 - (void)updateProgressView:(UIProgressView *)progressView {
42     if (!progressView.hidden) {
43         if (progressView.progress < 1.0) {
44             progressView.progress += 0.1;
45             [self performSelector:@selector(updateProgressView:)
46                        withObject:progressView
47                        afterDelay:1];
48         } else {
49             UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"下载完成"
50                                                                      delegate:self
51                                                             cancelButtonTitle:@"取消"
52                                                        destructiveButtonTitle:@"重新下载" otherButtonTitles:@"确定1", @"确定2", nil];
53             [actionSheet showInView:self.view];
54
55             NSLog(@"[actionSheet title]=%@", [actionSheet title]);
56             NSLog(@"[actionSheet numberOfButtons]=%ld", (long)[actionSheet numberOfButtons]);
57         }
58     }
59 }
60
61 - (void)showAlert:(NSString *)msg {
62     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ActionSheet选择项"
63                                                     message:msg
64                                                    delegate:self
65                                           cancelButtonTitle:nil
66                                           otherButtonTitles:@"确定", nil];
67     [alert show];
68 }
69
70 #pragma mark - ActionSheet
71 - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
72     switch (buttonIndex) {
73         case 0:
74             [self showAlert:[NSString stringWithFormat:@"buttonIndex=%ld, destructiveButtonTitle=重新下载", buttonIndex]];
75             _progressView.progress = 0.0;
76             [self updateProgressView:_progressView];
77             break;
78         case 1:
79         case 2:
80             [self showAlert:[NSString stringWithFormat:@"buttonIndex=%ld, otherButtonTitles=确定1和确定2", buttonIndex]];
81             [self performSelector:@selector(updateProgressView:)
82                        withObject:_progressView
83                        afterDelay:5];
84             break;
85         case 3:
86             [self showAlert:[NSString stringWithFormat:@"buttonIndex=%ld, cancelButtonTitle=取消", buttonIndex]];
87             _progressView.hidden = YES;
88             break;
89         default:
90             break;
91     }
92 }
93
94 #pragma mark - AlertView
95 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
96     NSLog(@"buttonIndex=%ld, otherButtonTitles=确定", (long)buttonIndex);
97 }
98
99 @end
时间: 2024-10-16 15:28:08

096实现一个蓝色进度条效果(扩展知识:UIActionSheet和UIAlertView的使用)的相关文章

Android 从无到有打造一个炫酷的进度条效果

从无到有打造一个炫酷的进度条效果

jQuery实现简单进度条效果

一个用jQuery实现的简单进度条,当加载页面时,屏幕顶部出现一条极细的小线条,加载页面时会显示加载进度. 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>jquery实现的简单进度条效果</title> 6 <style> 7 #web_loading{ 8 z-inde

CAShapeLayer实现圆形进度条效果

一.CAShapeLayer简介: 1.CAShapeLayer继承至CALayer,可以使用CALayer的所有属性值 2.CAShapeLayer需要与贝塞尔曲线配合使用才有意义 3.使用CAShapeLayer与贝塞尔曲线可以实现不在view的drawRect方法中画出一些想要的图形 4.CAShapeLayer属于CoreAnimation框架,其动画渲染直接提交到手机的GPU当中,相较于view的drawRect方法使用CPU渲染而言,其效率极高,能大大优化内存使用情况 五角星动画 #

纯css实现进度条效果

去年7月份做一个公司商城的微信页面(微信用的chrome内核)需要写一个提示返现进度的进度条效果. 一个完整的进度条效果其实可以拆分一下: 一段背景: 一小段的静态的斜纹进度条: 斜纹进度条用线性渐变 linear-gradient 类实现,原理很好理解,2个参数: 1.角度: 2.关键点(包含2个参数,1是颜色,2是长度位置) display: inline-block; width: 100px; height: 100px; background-image: linear-gradien

一个Notification 进度条插件(android,NJS实现,直接就可使用)

参考文章:http://ask.dcloud.net.cn/article/503 源码地址下载 如题,分享一个Notification 进度条插件(android,用js调用原生api实现,直接就可以使用).参考1: http://ask.dcloud.net.cn/article/155参考2:http://ask.dcloud.net.cn/question/2464 详细介绍: 最近有一个需求是,android更新资源包时,需要在通知栏里显示下载进度条,于是就搜索了下已有的解决方案发现并

Js效果:图片轮播;选项卡;侧面菜单下拉效果;进度条效果;滑动效果;好友列表选中效果;点击选中显示效果

选项卡效果表: <body><div id="aaa"> <div class="bbb" style="width:50px; height:30px; background-color:#3F0" onclick="Show('d1')">娱乐</div> <div class="bbb" style="width:50px; height

Android -- 真正的 高仿微信 打开网页的进度条效果

(本博客为原创,http://home.cnblogs.com/u/linguanh/) 目录: 一,为什么说是真正的高仿? 二,为什么要搞缓慢效果? 三,我的实现思路 四,代码,内含注释 五,使用方法与截图 六,完整项目 一,为什么说是真正的高仿? 阐述这个问题前,先说下之前网上的,各位可以复制这段字,去百度一下  "仿微信打开网页的进度条效果" ,你会看到有很多类似的文章,不过他们有个共同点,就是实现方法都是一样的,而且,都忽略了微信加载网页时,进度条的缓慢动画效果,它不是生硬地一

跟随进度而变色进度条效果ios源码

这个是跟随进度而变色进度条效果案例,源码EAColourfulProgressView,EAColourfulProgressView的进度条能够跟随进度而变色.颜色和进度的总量可以通过Storyboard改变.效果图: <ignore_js_op> 使用方法: 支持CocoaPods: pod 'EAColourfulProgressView', '~> 0.1.0' 导入头文件: #import "EAColourfulProgressView.h" 可以在Sto

CSS 静态进度条效果

今天学习到了实现一个静态进度条的方法,固写一篇笔记稳固一下自己的知识. 最终的效果如下,进度条放在一个框里,水平宽自适应. 现在就开始,首先写一个进度条先. .progress-bar{ /* 进度条的槽 */ width:47%; /* 设置进度条的高度 */ height: 5px; /*进度条外层div的背景色,进度未达到的地方的颜色 */ background-color: #f9e1e3; border-radius: 3px; } .progress{ /* 进度部分 */ /* 利