第三方类库SVProgressHUD的学习

SVProgressHUD这个类库用的比较多了。。用起来很简单。。

1.dispatch_once 创建单例

void dispatch_once( dispatch_once_t *predicate, dispatch_block_t block);
    该函数接收一个 dispatch_once用于检查该代码块是否已经被调度的谓词(是一个长整型,实际上作为 BOOL使用)。它还接收一个希望在应用的生命周期内仅被调度一次的代码块,对于本例就用于shared实例的实例化。
dispatch_once不仅意味着代码仅会被运行一次,而且还是线程安全的,这就意味着你不需要使用诸如 @synchronized之类的来防止使用多个线程或者队列时不同步的问题。Apple的 GCD Documentation证实了这一点:如果被多个线程调用,该函数会同步等等直至代码块完成。
  实际要如何使用这些呢?好吧,假设有一个 AccountManager类,你想在整个应用中访问该类的共享实例。你可以按如下代码简单实现一个类方法:

+ (SVProgressHUD*)sharedView {

    static dispatch_once_t once;

    static SVProgressHUD *sharedView;

    dispatch_once(&once, ^ { 

sharedView = [[self alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    });

    return sharedView;

}

这就意味着你任何时候访问共享实例,需要做的仅是:
SVProgressHUD *svprogress = [ SVProgressHUD sharedView];
    就这些,你现在在应用中就有一个共享的实例,该实例只会被创建一次。
    该方法有很多优势: 
           1 线程安全
           2 很好满足静态分析器要求
           3 和自动引用计数(ARC)兼容 
           4 仅需要少量代码 
        该方法的劣势就是它仍然运行创建一个非共享的实例:
    SVProgressHUD  *svprogress = [ SVProgressHUD   sharedView ];
        有些时候你希望有这种行为,但如果正在想要的是仅一个实例被实例化就需要注意这点。

    2.一堆showXXXX的函数都是围绕着

    - (void)showProgress:(float)progress status:(NSString*)string maskType:(SVProgressHUDMaskType)hudMaskType ;

    progress>0   

    这里里面先是创建了一个UIControl类型的overlayView 他执行的功能就是发一个SVProgressHUDDidReceiveTouchEventNotification的通知

    然后这个东西在那里接收还没有找到 //TODO

    //猜测这个应该是用于你自己需要手动把这个view移掉或者进行其他工作时你可以接收这个通知

    之后是创建了一个遍历数组的枚举

    NSEnumerator *frontToBackWindows = [[[UIApplication sharedApplication]windows]reverseObjectEnumerator];

    按照索引号从大到小访问UIApplication里的Windows

    寻找到UIWindowLevelNormal的Window把overlayView添加进去

    再向下就是一些添加,修改属性的东西.

    //中间还遇到了

    __IPHONE_OS_VERSION_MIN_REQUIRED  //当前系统支持的最小版本

    __IPHONE_OS_VERSION_MAX_REQUIRED  //当前系统支持的最大版本




    weixin151云匹面粉直供微信小程序+springboot后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值