自己方便的控制提示控件的位置、大小和内容
#define LOADING_TAG 111
#define LOADING_PROMPT 112
#define LOADING_ACTIVITY 113
#define INDICATOR_WIDTH 180.0f
#define STRING_LOADING @"加载中..."
- ( void)createIndicator{
UIView *indicatorView = [[UIView alloc] init];
indicatorView.tag = LOADING_TAG;
indicatorView.backgroundColor = [UIColor blackColor];
indicatorView.bounds = CGRectMake(0, 0, INDICATOR_WIDTH, 100);
indicatorView.center = CGPointMake(self.tableView.center.x, self.tableView.center.y - 100);
indicatorView.layer.cornerRadius = 10.0f;
indicatorView.layer.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.7].CGColor;
[self.view addSubview:indicatorView];
UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
activityView.tag = LOADING_ACTIVITY;
activityView.center = CGPointMake(INDICATOR_WIDTH / 2, 40);
[indicatorView addSubview:activityView];
[activityView release];
[activityView startAnimating];
UILabel *loadingLable = [[UILabel alloc] initWithFrame:CGRectMake(0,60,INDICATOR_WIDTH,30)];
loadingLable.tag = LOADING_PROMPT;
loadingLable.text = [NSString stringWithFormat:STRING_LOADING];
loadingLable.backgroundColor = [UIColor clearColor];
loadingLable.textColor = [UIColor whiteColor];
loadingLable.textAlignment = NSTextAlignmentCenter;
[indicatorView addSubview:loadingLable];
[loadingLable release];
[indicatorView release];
indicatorView.hidden = YES;
}
- (void)showIndicator
{
UIView *indicatorView = [self.view viewWithTag:LOADING_TAG];
[self.view bringSubviewToFront:indicatorView];
indicatorView.hidden = NO;
}
- (void)hideIndicator
{
UIView *indicatorView = [self.view viewWithTag:LOADING_TAG];
indicatorView.hidden = YES;
}
//这里控制要加载的提示文字和显示
- (void)setIndicatorPrompt:(NSString *)prompt showActivity:(bool)bShow
{
UIView *indicatorView = [self.view viewWithTag:LOADING_TAG];
UILabel *label = (UILabel *)[indicatorView viewWithTag:LOADING_PROMPT];
label.text = prompt;
if (!bShow) {
[label setFrame:CGRectMake(0, 40, INDICATOR_WIDTH, 30)];
}
else
{
[label setFrame:CGRectMake(0, 60, INDICATOR_WIDTH, 30)];
}
UIActivityIndicatorView *activity = (UIActivityIndicatorView *)[indicatorView viewWithTag:LOADING_ACTIVITY];
if (bShow)
{
[activity startAnimating];
}
else
{
[activity stopAnimating];
}
activity.hidden = !bShow;
}