簡體   English   中英

iPhone:進度指示器

[英]iPhone: Progress Indicator

在我的應用程序中,當我從服務下載內容時,我會顯示進度指示器:

 - (void)setupProgressIndicator {
    MBProgressHUD *progressHUD = [[MBProgressHUD alloc] initWithView:self.view];
    [self.view addSubview:progressHUD];
    self.progressIndicator = progressHUD;
    [progressHUD release];
 }

[self.progressIndicator show:YES];

我的視圖有我在 AppDelegate 中設置的導航欄,當顯示指示器時,我仍然可以打開導航欄按鈕...MBProgressHUB 可以覆蓋整個屏幕嗎? 因為我不想在同步開始時禁用按鈕,而不是在同步完成時啟用它們……我認為指示器應該覆蓋整個屏幕。 有任何想法嗎? 謝謝...

這是我的實現,如果您想將其放入 appDelegate 並從應用程序的任何位置使用,請使用它。

#pragma mark -
#pragma mark Waiting View
- (void)showWaitingView {

    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    CGRect frame = CGRectMake(90, 190, 32, 32);
    UIActivityIndicatorView* progressInd = [[UIActivityIndicatorView alloc] initWithFrame:frame];
    [progressInd startAnimating];
    progressInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;

    frame = CGRectMake(130, 193, 140, 30);
    UILabel *waitingLable = [[UILabel alloc] initWithFrame:frame];
    waitingLable.text = @"Processing...";
    waitingLable.textColor = [UIColor whiteColor];
    waitingLable.font = [UIFont systemFontOfSize:20];;
    waitingLable.backgroundColor = [UIColor clearColor];
    frame = [[UIScreen mainScreen] applicationFrame];
    UIView *theView = [[UIView alloc] initWithFrame:frame];
    theView.backgroundColor = [UIColor blackColor];
    theView.alpha = 0.7;
    theView.tag = 999;
    [theView addSubview:progressInd];
    [theView addSubview:waitingLable];

    [progressInd release];
    [waitingLable release];

    [window addSubview:[theView autorelease]];
    [window bringSubviewToFront:theView];
    [pool drain];
}

- (void)removeWaitingView {
    UIView *v = [window viewWithTag:999];
    if(v) [v removeFromSuperview];

}

通常的事情是添加一個覆蓋整個屏幕的透明視圖,這將捕獲觸摸事件。 或者您可以將 HUD 設置為屏幕大小,僅在中心顯示可見的小部件。

    - (IBAction)showWithCustomView:(id)sender {

        HUD = [[MBProgressHUD alloc] initWithView:self.view];

        [self.view addSubview:HUD];

        HUD.customView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"37x-Checkmark.png"]] autorelease];


        HUD.customView.frame=CGRectMake(0, 0, 320, 460);//Ur answer

        HUD.mode = MBProgressHUDModeCustomView;

        HUD.delegate = self;
        HUD.labelText = @"Completed";

        [HUD show:YES];
        [HUD hide:YES afterDelay:3];
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM