• MBProgressHUD各种样式用法


    demo 来源: https://github.com/jdg/MBProgressHUD/

    //只有小菊花

    - (void)indeterminateExample {

        // Show the HUD on the root view (self.view is a scrollable table view and thus not suitable,

        // as the HUD would move with the content as we scroll).

        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];

     

        // Fire off an asynchronous task, giving UIKit the opportunity to redraw wit the HUD added to the

        // view hierarchy.

        dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{

     

            // Do something useful in the background

            [self doSomeWork];

     

            // IMPORTANT - Dispatch back to the main thread. Always access UI

            // classes (including MBProgressHUD) on the main thread.

            dispatch_async(dispatch_get_main_queue(), ^{

                [hud hideAnimated:YES];

            });

        });

    }

     

    //小菊花+文字

    - (void)labelExample {

        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];

     

        // Set the label text.

        hud.label.text = NSLocalizedString(@"Loading...", @"HUD loading title");

        // You can also adjust other label properties if needed.

        // hud.label.font = [UIFont italicSystemFontOfSize:16.f];

     

        dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{

            [self doSomeWork];

            dispatch_async(dispatch_get_main_queue(), ^{

                [hud hideAnimated:YES];

            });

        });

    }

    //小菊花+文字+detailsLabel

    - (void)detailsLabelExample {

        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];

     

        // Set the label text.

        hud.label.text = NSLocalizedString(@"Loading...", @"HUD loading title");

        // Set the details label text. Let's make it multiline this time.

        hud.detailsLabel.text = NSLocalizedString(@"Parsing data (1/1)", @"HUD title");

     

        dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{

            [self doSomeWork];

            dispatch_async(dispatch_get_main_queue(), ^{

                [hud hideAnimated:YES];

            });

        });

    }

     

    - (void)windowExample {

        // Covers the entire screen. Similar to using the root view controller view.

        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view.window animated:YES];

        dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{

            [self doSomeWork];

            dispatch_async(dispatch_get_main_queue(), ^{

                [hud hideAnimated:YES];

            });

        });

    }

    //圆环进度条+文字

    - (void)determinateExample {

        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];

     

        // Set the determinate mode to show task progress.

        hud.mode = MBProgressHUDModeDeterminate;

        hud.label.text = NSLocalizedString(@"Loading...", @"HUD loading title");

     

        dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{

            // Do something useful in the background and update the HUD periodically.

            [self doSomeWorkWithProgress];

            dispatch_async(dispatch_get_main_queue(), ^{

                [hud hideAnimated:YES];

            });

        });

    }

    //圆环进度条+文字+ 取消按钮

    - (void)determinateNSProgressExample {

    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];

     

    // Set the determinate mode to show task progress.

    hud.mode = MBProgressHUDModeDeterminate;

    hud.label.text = NSLocalizedString(@"Loading...", @"HUD loading title");

     

    // Set up NSProgress

    NSProgress *progressObject = [NSProgress progressWithTotalUnitCount:100];

    hud.progressObject = progressObject;

     

    // Configure a cancel button.

    [hud.button setTitle:NSLocalizedString(@"Cancel", @"HUD cancel button title") forState:UIControlStateNormal];

    [hud.button addTarget:progressObject action:@selector(cancel) forControlEvents:UIControlEventTouchUpInside];

     

    dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{

    // Do something useful in the background and update the HUD periodically.

    [self doSomeWorkWithProgressObject:progressObject];

    dispatch_async(dispatch_get_main_queue(), ^{

    [hud hideAnimated:YES];

    });

    });

    }

    //圆环进度条+文字

    - (void)annularDeterminateExample {

        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];

     

        // Set the annular determinate mode to show task progress.

        hud.mode = MBProgressHUDModeAnnularDeterminate;

        hud.label.text = NSLocalizedString(@"Loading...", @"HUD loading title");

     

        dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{

            // Do something useful in the background and update the HUD periodically.

            [self doSomeWorkWithProgress];

            dispatch_async(dispatch_get_main_queue(), ^{

                [hud hideAnimated:YES];

            });

        });

    }

    //直线进度条+文字

    - (void)barDeterminateExample {

        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];

     

        // Set the bar determinate mode to show task progress.

        hud.mode = MBProgressHUDModeDeterminateHorizontalBar;

        hud.label.text = NSLocalizedString(@"Loading...", @"HUD loading title");

     

        dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{

            // Do something useful in the background and update the HUD periodically.

            [self doSomeWorkWithProgress];

            dispatch_async(dispatch_get_main_queue(), ^{

                [hud hideAnimated:YES];

            });

        });

    }

    #pragma mark --自定义视图

    //自定义视图

    - (void)customViewExample {

        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];

     

        // Set the custom view mode to show any view.

        hud.mode = MBProgressHUDModeCustomView;

        // Set an image view with a checkmark.

        //default

    //    UIImage *image = [[UIImage imageNamed:@"Checkmark"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

        

        //mxs

        //UIImage *image = [[UIImage imageNamed:@"下拉刷新一80x80"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];//success  下拉刷新一80x80 密码登录lgo

        

        UIImage *image = [UIImage imageNamed:@"下拉刷新一80x80"];//success  下拉刷新一80x80 密码登录lgo

     

        UIImageView *imgV = [[UIImageView alloc] initWithImage:image];

        

        [imgV.layer addAnimation:[self makeRotation] forKey:nil];

      

        hud.customView = imgV;

        // Looks a bit nicer if we make it square.

        hud.square = YES;

        // Optional label text.

        hud.label.text = @"Done"

     

        [hud hideAnimated:YES afterDelay:2.f];//几秒后消失

    }

     

     

    #pragma mark --旋转

    - (CABasicAnimation *)makeRotation{

        

        CATransform3D rotationTransform = CATransform3DMakeRotation((360*180.0)/(M_PI), 0, 0, -1);

        CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform"];

        animation.toValue = [NSValue valueWithCATransform3D:rotationTransform];

        animation.duration  =  1;

        animation.autoreverses = NO;

        animation.cumulative = YES;

        animation.fillMode = kCAFillModeForwards;

        animation.repeatCount = 100;

        

        return animation;

    }

     

    //只有文字

    - (void)textExample {

        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];

     

        // Set the text mode to show only text.

        hud.mode = MBProgressHUDModeText;

        hud.label.text = NSLocalizedString(@"Message here!", @"HUD message title");

        // Move to bottm center.

        hud.offset = CGPointMake(0.f, MBProgressMaxOffset);

     

        [hud hideAnimated:YES afterDelay:3.f];

    }

     

    - (void)cancelationExample {

        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];

     

        // Set the determinate mode to show task progress.

        hud.mode = MBProgressHUDModeDeterminate;

        hud.label.text = NSLocalizedString(@"Loading...", @"HUD loading title");

     

        // Configure the button.

        [hud.button setTitle:NSLocalizedString(@"Cancel", @"HUD cancel button title") forState:UIControlStateNormal];

        [hud.button addTarget:self action:@selector(cancelWork:) forControlEvents:UIControlEventTouchUpInside];

     

        dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{

            // Do something useful in the background and update the HUD periodically.

            [self doSomeWorkWithProgress];

            dispatch_async(dispatch_get_main_queue(), ^{

                [hud hideAnimated:YES];

            });

        });

    }

    //小菊花--转换-->圆环

    - (void)modeSwitchingExample {

        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];

     

        // Set some text to show the initial status.

        hud.label.text = NSLocalizedString(@"Preparing...", @"HUD preparing title");

        // Will look best, if we set a minimum size.

        hud.minSize = CGSizeMake(150.f, 100.f);

     

        dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{

            // Do something useful in the background and update the HUD periodically.

            [self doSomeWorkWithMixedProgress];

            dispatch_async(dispatch_get_main_queue(), ^{

                [hud hideAnimated:YES];

            });

        });

    }

     

    - (void)networkingExample {

        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];

     

        // Set some text to show the initial status.

        hud.label.text = NSLocalizedString(@"Preparing...", @"HUD preparing title");

        // Will look best, if we set a minimum size.

        hud.minSize = CGSizeMake(150.f, 100.f);

     

        [self doSomeNetworkWorkWithProgress];

    }

     

    - (void)dimBackgroundExample {

    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];

     

    // Change the background view style and color.

    hud.backgroundView.style = MBProgressHUDBackgroundStyleSolidColor;

    hud.backgroundView.color = [UIColor colorWithWhite:0.f alpha:0.1f];

     

    dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{

    [self doSomeWork];

    dispatch_async(dispatch_get_main_queue(), ^{

    [hud hideAnimated:YES];

    });

    });

    }

     

    - (void)colorExample {

    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];

    hud.contentColor = [UIColor colorWithRed:0.f green:0.6f blue:0.7f alpha:1.f];

     

    // Set the label text.

    hud.label.text = NSLocalizedString(@"Loading...", @"HUD loading title");

     

    dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{

    [self doSomeWork];

    dispatch_async(dispatch_get_main_queue(), ^{

    [hud hideAnimated:YES];

    });

    });

    }

    #pragma mark - Tasks

     

    - (void)doSomeWork {

        // Simulate by just waiting.

        sleep(3.);

    }

  • 相关阅读:
    四大组件的工作过程
    理解Window和WindowManager
    Android中的动画
    View的工作原理
    62、滑动窗口的最大值
    61、数据流中的中位数
    60、二叉搜索树的第k个结点
    59、序列化二叉树
    58、把二叉树打印成多行
    57、按之字形顺序打印二叉树
  • 原文地址:https://www.cnblogs.com/daxueshan/p/6370919.html
Copyright © 2020-2023  润新知