分享一下我自己的懒人代码吧,只要四个方法(最少只要show和hide两个也行),就可以实现ActivitiyView的居中显示
代码很简单,自己看下了
#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
代码很简单,自己看下了
#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