首页 > 其他分享 >IOS为每个网请求添加进度标示

IOS为每个网请求添加进度标示

时间:2023-04-30 11:08:33浏览次数:42  
标签:progressHUD self IOS 标示 hideProgress 添加 responseDelegate showProgress view


UIViewController的子类,且只有界面才有必要现实进度标示。然后在网络请求的开始和结束调用这个方法

1. 基于 UIViewController做扩展



#import
 
@implementation
 
void)showProgress
 {
   NSLog(@"=======showProgress=========");
  MBProgressHUD *progressHUD = [[[MBProgressHUD alloc]initWithView:self.view] autorelease];
   
   progressHUD.minSize = CGSizeMake(120, 120);
   progressHUD.minShowTime = 0.3;
   progressHUD.tag = 9999;
   [self.view addSubview:progressHUD];
   
   [self.view bringSubviewToFront:progressHUD];
   progressHUD.layer.masksToBounds = YES;
   progressHUD.layer.cornerRadius = 10.0;
   progressHUD.labelText = @"加载中...";
  mode = MBProgressHUDModeIndeterminate;
   [progressHUD show:YES];
   
   
   self.navigationController.navigationBar.userInteractionEnabled = NO;
 }
 
void)hideProgress
 {
   NSLog(@"=======hideProgress=========");
  UIView *progressHUD =  [self.view viewWithTag:9999];
  if
  
       [progressHUD removeFromSuperview];
  
 }
 @end

2. 在网络请求开始地方调用方法

NetworkCenter中调用

在网络创建,加入请求队列之前调用,显示进度标示


if(responseDelegate && [responseDelegate respondsToSelector:@selector(showProgress)])
{
      responseDelegate showProgress];
}

在网络请求成功、失败、网络异常调用,隐藏进度标示


if(responseDelegate && [responseDelegate respondsToSelector:@selector(hideProgress)])
{
      responseDelegate hideProgress];
}


标签:progressHUD,self,IOS,标示,hideProgress,添加,responseDelegate,showProgress,view
From: https://blog.51cto.com/u_548275/6237775

相关文章

  • [深入浅出Cocoa]iOS网络编程之Sock…
    一,iOS网络编程层次模型在前文《深入浅出Cocoa之Bonjour网络编程》中我介绍了如何在Mac系统下进行Bonjour编程,在那篇文章中也介绍过Cocoa中网络编程层次结构分为三层,虽然那篇演示的是Mac系统的例子,其实对iOS系统来说也是一样的。iOS网络编程层次结构也分为三层:Cocoa层:NSURL......
  • [iOS]GCD小结
    BriefIntroduction  GCD,全称GrandCentralDispath,是苹果开发的一种支持并行操作的机制。它的主要部件是一个FIFO队列和一个线程池,前者用来添加任务,后者用来执行任务。  GCD中的FIFO队列称为dispatchqueue,它可以保证先进来的任务先得到执行(但不保证一定先执行结束)。 ......
  • IOS实例变量和属性
    在IOS编程中,很多人没有理解实例变量与属性的区别,我根据自己的经验,这这里与大家分享下这里面的区别,下面我写一个简单的例子:.h@interfaceMyController:UIViewController{UILabel*_myLabel;//这里是实例变量声明}@property(nonatomic,retain)UILabel*myLabe......
  • iOS开发 UItableView中的单元…
    iOSiPhone开发UItableView中的单元格背景渐变渐变如果用背景图片,会让你的app臃肿。给APP瘦身,我们可以使用代码来解决渐变的问题。这篇文章是解决表格中的单元格的简便问题,同时解决单元格外边框问题。1:设置好开始颜色与结束颜色。推荐一个小工具,在chrome浏览器上安装一个扩展......
  • iOS数据存储的四种方案对比
    你是用什么方法来持久保存数据的?这是在几乎每一次关于iOS技术的交流或讨论都会被提到的问题,而且大家对这个问题的热情持续高涨。本文主要从概念上把“数据存储”这个问题进行剖析,并且结合各自特点和适用场景给大家提供一个选择的思路,并不详细介绍某一种方式的技术细节。谈到数据......
  • iOS开发UITableView基本使用方法总…
    UITableView基本使用方法1.首先,Controller需要实现两个delegate,分别是UITableViewDelegate和UITableViewDataSource2.然后UITableView对象的delegate要设置为self。3.然后就可以实现这些delegate的一些方法拉。(1)-(NSInteger)numberOfSectionsInTableView:(UITableView*......
  • Vue 异步通信Axios
    使用Axios实现异步通信需要先导入cdn:<scriptsrc="https://unpkg.com/[email protected]/dist/axios.min.js"></script>使用到的数据data.json{"name":"kuang","url":"https://www.bilibili.com/?spm_id_from=333.788.0......
  • dell 7080m black mac bios setup
    BISO设置参考的以下帖子,改了一部分内容USBWakeSupport和WakeonLAN/WLAN保持了默认,因为我用不到网络唤醒功能。​https://github.com/3dudu/dell-optiplex-7080-hackintosh-opencore设置项   值SATAOperation   AHCIIntegratedNIC   EnabledSecureBootEnable ......
  • 将集合中的某一条数据添加到首位或者最后一位
    直接上代码publicstaticvoidmain(String[]args){List<Customer>addressList=newArrayList<>();Customerc1=newCustomer();c1.setId("1");c1.setName("ckf");addressList.add(c1);......
  • (2023)iOS17开放侧载的网友观点调研
    前言因为欧盟方面的强制措施,不出意外的话,iOS17开始苹果将被迫开放侧载。虽然具体如何开放的细节还不确定,但是这毕竟对苹果,开发者,以及用户都是不小的事情。整理了下网友们(主要是开发者们),对侧载的一系列看法和猜测。因为很多意见是相左的,所以整理成了反面观点和正面观点。反面......