博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

IPhone之UIProgressView

Posted on 2011-08-09 11:01  星尘的天空  阅读(341)  评论(0编辑  收藏  举报

链接地址:http://blog.sina.com.cn/s/blog_4adf31ea0100pt31.html

  做了一个小Deme,是通过UIActionSheet来显示UIProgressView进度条的。

 

 

代码如下:

 

@interface View21 : UIViewController <UIActionSheetDelegate>

{

float amountDone;

UIProgressView *progressView;

UIActionSheet *actionSheet;

UIView *mainView;

}

 

 

 

实现方法:

 

#import "View21.h"

 

@implementation View21

@synthesize actionSheet;

 


- (void)loadView

{

mainView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];

self.view=mainView;


self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"进度条" style:UIBarButtonItemStylePlain target:self action:@selector(action:)] autorelease];

}

 

 

 

-(void) action: (UIBarButtonItem *) item

{

amountDone = 0.0f;

    self.actionSheet = [[[UIActionSheet alloc] initWithTitle:@"正在加载数据请等待\n\n\n" delegate:nil cancelButtonTitle:nil destructiveButtonTitle: nil otherButtonTitles: nil] autorelease];

progressView = [[UIProgressView alloc] initWithFrame:CGRectMake(0.0f, 40.0f, 220.0f, 90.0f)];

    [progressView setProgressViewStyle: UIProgressViewStyleDefault];

    [actionSheet addSubview:progressView];

    [progressView release];

 

    //建立更新  nstimer

    [progressView setProgress:(amountDone = 0.0f)];

[NSTimer scheduledTimerWithTimeInterval: 0.35 target: self selector:@selector(incrementBar:) userInfo: nil repeats: YES];


//向actionSheet 添加view数据条

    [actionSheet showInView:mainView];

progressView.center = CGPointMake(actionSheet.center.x, progressView.center.y);

}

 


// nstimer  事件

- (void) incrementBar: (id) timer

{

    amountDone += 1.0f;

    [progressView setProgress: (amountDone / 20.0)];


//结束 actionSheet

if (amountDone > 20.0)

{

[self.actionSheet dismissWithClickedButtonIndex:0 animated:YES];

self.actionSheet = nil;

[timer invalidate];

}

}

}