iphone开发第三课:使用进度条实现加载

来源:互联网 时间:1970-01-01

玩手机游戏时,我们经常会遇到游戏的加载,多数使用进度条来实现。现在我也为大家展示一个。

主控制器头文件的内容:

#import <UIKit/UIKit.h>

#import "JSBankMainMenuController.h"@interface JSBankViewController : UIViewController {
    IBOutlet UIProgressView *progressBar;
    NSTimer *timer;
    JSBankMainMenuController *mainMenuViewController;
}

@property (nonatomic, retain) UIProgressView *progressBar;

-(IBAction)changeProgress:(id)sender;

-(void)startAnimation;

@end

主控制器实现文件的内容:

#import "JSBankViewController.h"

@implementation JSBankViewController

@synthesize progressBar;

float i = 0.0f;

-(IBAction)changeProgress:(id)sender {
    i = i + 1.0f;
    if (i > 1500.0f) {
        // 停用计时器
        [timer invalidate];
        // 切换视图
        [self startAnimation];
    } else {
        [self.progressBar setProgress:(i / 1500.0f)];
    }
}

-(void)startAnimation {
    // 添加动画效果
    [UIView beginAnimations:@"loading" context:nil];
    // 动画持续时间
    [UIView setAnimationDuration:3.5];
    // 设置延迟开始动画之前的延迟时间
    [UIView setAnimationDelay:0.0];
    // 动画曲线
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    // 动画的交换效果
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:[self.view superview] cache:YES];
    mainMenuViewController = [[JSBankMainMenuController alloc] init];
    [[self.view superview] addSubview:mainMenuViewController.view];
    [self.view removeFromSuperview];
    // 提交动画效果,一定不要忘记
    [UIView commitAnimations];
   
    [mainMenuViewController release];
}

- (void)viewDidLoad {
    [super viewDidLoad];
    timer = [NSTimer scheduledTimerWithTimeInterval:0.001 target:self selector:@selector(changeProgress:) userInfo:nil repeats:YES];
}

@end



效果:





代码下载:

http://files.cnblogs.com/guwandong/JSBank.zip


相关阅读:
Top