loadingVIew 我写成了一个单例,是一个自定义的View ,添加到window上实现的。
如果把这个view ,添加到当前控制器的view上面,就不能屏蔽导航bar的操作,随意我把它添加到window上面。
loadingView 的效果是,网络请求的时候,添加,请求结束的时候,0.5s动画,逐渐消失
加载loadingView 用宏 LOADING_ON
取消loadingView 用宏 LOADING_OFF
[[UIApplication sharedApplication].keyWindow addSubview:ctrl.view];
遇到的问题:动画冲突
具体 描述: 当网络请求A的时候,loadingVIew显示,请求结束,在loadingView执行0.5s消失动画的时候,此刻网络请求B开始,这个时候,loadingView并没有显示。
解决问题:
方案1,用计数的思想 loadingCout 当,loadingCout > 0的时候,不执行LOADING_OFF,每次网络请求的时候 loadingCout ++,执行LOADING_OFF的时候 loadingCout --.
此方案不行,因为执行LOADiING_OFF的动作,在LOADING_ON之前,就是,消失动画过程中,才计数加1的。
这个方案是,计数加1,再判断是否执行消失动画
方案2,消失动画 不用 UIVIew 动画,用定时器来实现动画
定时器初始化
_sharedInstance.timer_viewDisapper = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(dealViewDisapper) userInfo:nil repeats:YES];
[_sharedInstance.timer_viewDisapper setFireDate:[NSDate distantFuture]];
setFireDate:[NSDate distantFuture]这个函数,让定时器 不执行
[ctrl.timer_viewDisapper setFireDate:[NSDate date]];这个函数,让定时器 暂定执行