当前位置: 代码迷 >> Iphone >> Iphone展示正在加载
  详细解决方案

Iphone展示正在加载

热度:86   发布时间:2016-04-25 06:27:36.0
Iphone显示正在加载
////  ActivityView.h////  Copyright 2010. All rights reserved.//#import <UIKit/UIKit.h>#define kAnimationDurationStart 2#define kAnimationDurationEnd 1@interface ActivityView : NSObject {    IBOutlet UILabel *messageLabel;    IBOutlet UIView *view;    BOOL isShow;}@property (nonatomic, readonly) UILabel *messageLabel;@property (nonatomic, readonly) UIView *view;@property (nonatomic) BOOL isShow;+ (ActivityView *)sharedActivityView;- (void)showWithMessage:(NSString *)message  animate:(BOOL)animate;- (void)hide:(BOOL)animate;@end  ////  ActivityView.m////  Copyright 2010  All rights reserved.//#import "ActivityView.h"@implementation ActivityView@synthesize messageLabel,view, isShow;//单例模式static ActivityView *activityView;- (id) init {    self = [super init];    if (self != nil) {        [[NSBundle mainBundle] loadNibNamed:@"ActivityView" owner:self options:nil];        [[[UIApplication sharedApplication] keyWindow] addSubview:view];        [view setFrame:CGRectMake(0, [UIApplication sharedApplication].statusBarFrame.size.height-view.frame.size.height, view.frame.size.width, view.frame.size.height)];        isShow = NO;    }    return self;}+ (ActivityView *)sharedActivityView {    if (!activityView) {        activityView = [[ActivityView alloc]init];    }    return activityView;}- (void)showWithMessage:(NSString *)message animate:(BOOL)animate {    isShow = YES;    messageLabel.text = message;    [view.superview bringSubviewToFront:view];    if ( animate )     {                [UIView beginAnimations:nil context:NULL];        [UIView setAnimationDuration:kAnimationDurationStart];        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];        [view setFrame:CGRectMake(0, [UIApplication sharedApplication].statusBarFrame.size.height, view.frame.size.width, view.frame.size.height)];        [UIView commitAnimations];    }    else     {        [view setFrame:CGRectMake(0, [UIApplication sharedApplication].statusBarFrame.size.height, view.frame.size.width, view.frame.size.height)];    }}- (void)hide:(BOOL)animate{    messageLabel.text = @"";    if (animate)     {        [UIView beginAnimations:nil context:NULL];        [UIView setAnimationDuration:kAnimationDurationEnd];        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];        [view setFrame:CGRectMake(0, [UIApplication sharedApplication].statusBarFrame.size.height-view.frame.size.height, view.frame.size.width, view.frame.size.height)];        [UIView commitAnimations];        }    else    {        [view setFrame:CGRectMake(0, [UIApplication sharedApplication].statusBarFrame.size.height-view.frame.size.height, view.frame.size.width, view.frame.size.height)];    }    [[UIApplication sharedApplication] keyWindow].userInteractionEnabled = YES;    isShow = NO;}    @end 调用方法 [[ActivityView sharedActivityView] showWithMessage:@"正在下载数据" animate: NO];[[ActivityView sharedActivityView] hide: YES];  如何更改ActivityView位置,修改 setFrame方法   coco china里有人提供了另外一个方法:#define activityViewTag                0x98751234@interface UIView (UIViewUtils) - (void)showActivityViewAtCenter;- (void)hideActivityViewAtCenter;- (UIActivityIndicatorView*)createActivityViewAtCenter:(UIActivityIndicatorViewStyle)style;- (UIActivityIndicatorView*)getActivityViewAtCenter;@end#import "UIViewUtils.h"@implementation UIView (UIViewUtils)- (UIActivityIndicatorView*)createActivityViewAtCenter:(UIActivityIndicatorViewStyle)style{    static int size = 30;        UIActivityIndicatorView* activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:style];    activityView.frame = CGRectMake([UIScreen mainScreen].bounds.size.width/2 - size/2, [UIScreen mainScreen].bounds.size.height/2 - size*2, size, size);    activityView.tag = activityViewTag;    [self addSubview:activityView];    [activityView release];        return activityView;}- (UIActivityIndicatorView*)getActivityViewAtCenter{    UIView* view = [self viewWithTag:activityViewTag];    if (view != nil && [view isKindOfClass:[UIActivityIndicatorView class]]){        return (UIActivityIndicatorView*)view;    }    else {        return nil;    }}- (void)showActivityViewAtCenter{    UIActivityIndicatorView* activityView = [self getActivityViewAtCenter];    if (activityView == nil){        activityView = [self createActivityViewAtCenter:UIActivityIndicatorViewStyleWhite];    }    [activityView startAnimating];}- (void)hideActivityViewAtCenter{    UIActivityIndicatorView* activityView = [self getActivityViewAtCenter];    if (activityView != nil){        [activityView stopAnimating];    }        }@end  

?

  相关解决方案