iOS开发中-使用提示框的场景有不少,现在最常用的两种提示框 - MBProgressHUD && SVProgressHUD ,具体什么场景使用哪个各有各的经验,我以实际项目需求,简单讲解一下 两种提示框 SVProgress - 同理创建实例变量 SVProgressHUD的本质也是UIView,如果将其alloc init,同样可以做到和MBProgress一样,为其添加手势! ? 问题!
简介 SVProgressHUD是简单易用的显示器,用于指示一个持续进行的任务的进度. 最新示例: 点击下载 快速入门 安装 通过Cocoapods pod 'SVProgressHUD' 手动安装 拖拽 SVProgressHUD/SVProgressHUD 文件 到你的项目. 使用 (参见Xcode项目文档 /Demo) SVProgressHUD 作为一个单例(也就是说,它并不需要创建和实例化,你直接调用, 如[SVProgressHUD method]). 使用SVProgressHUD是非常明智的! 常用场景:下拉刷新,无限滚动,发送消息 使用SVProgressHUD在您的应用程序通常看起来简单: [SVProgressHUD show]; dispatch_async(dispatch_get_global_queue
情景 我在桥接文件中直接写入 #import <SVProgressHUD/SVProgressHUD.h> 然后在swift文件中得重新导入才可以使用,即 import SVProgressHUD 项目中很多地方都需要 SVProgressHUD,在每一个需要SVProgressHUD的swift文件中再导入一遍那可不是明智的选择 解决方案 创建桥接文件 target —> build setting, 搜索bridg 在桥接文件中引用�第三方库的文件名 注意导入格式: #import "SVProgressHUD.h" 不是这种,不让坑死人呐 #import <SVProgressHUD/SVProgressHUD.h �User Header Search Paths 如图所求,设置�搜索路径为${SRCROOT} ,后面为 recursive现在就可以愉快的使用SVProgressHUD了
https://blog.csdn.net/u010105969/article/details/79520856 背景: 在对公司之前项目进行版本迭代的时候发现在使用SVProgressHUD 表象原因: 之前开发人员在使用SVProgressHUD的时候使用了一个方法: [SVProgressHUD setContainerView:webView]; 解决方法: 将上面使用的方法注释掉 本人在使用SVProgressHUD的时候会对其进行一个继承,然后使用其子类,本人这么做的原因有两点: 1.如果项目中要将原来的SVProgressHUD替换掉,只需修改这个子类即可很快、很轻松地一次性替换掉 2.如果项目中要统一修改SVProgressHUD的一些属性,如背景色、显示时间也能很快地在这个子类中统一修改。
介绍框架<一> SVProgressHUD // 下面这些消息需要主动调用dismiss方法来隐藏 [SVProgressHUD show]; [SVProgressHUD showWithMaskType :SVProgressHUDMaskTypeBlack]; // 增加灰色蒙板 [SVProgressHUD showWithStatus:@"正在加载中..."] dismiss]; }); // 下面这些消息会自动消失 // [SVProgressHUD showInfoWithStatus:@"数据加载完毕!"] ; // [SVProgressHUD showSuccessWithStatus:@"成功加载到4条新数据!"] ; // [SVProgressHUD showErrorWithStatus:@"网络错误,请稍等!"]
I 网络加载中处理 本文以SVProgressHUD框架为例子进行讲解 1.1 UIWindowLevel UIWindowLevel级别的高低顺序从小到大为Normal < StatusBar < Alert setInfoImage:image]; [SVProgressHUD setImageViewSize:CGSizeMake(60, 60)]; [SVProgressHUD showInfoWithStatus green:0.0 blue:0.0 alpha:0.30]]; [SVProgressHUD setForegroundColor: UIColor.whiteColor]; [SVProgressHUD setInfoImage:image]; [SVProgressHUD setImageViewSize:CGSizeMake(60, 60)]; [SVProgressHUD setBackgroundColor default is 0 seconds // [SVProgressHUD setMinimumDismissTimeInterval:0.4]; [SVProgressHUD setBackgroundLayerColor
MBProgressHUD 还是 SVProgressHUD ? github 流行度: MBProgressHUD - SVProgressHUD = 2500 截止目前, MBProgressHUD 的关注度为 8556, SVProgressHUD 的关注度为 接口易用性: MBProgressHUD == SVProgressHUD 以下是MBProgressHUD 和 SVProgressHUD 各自项目的github主页上,各自的基本用法示例: [MBProgressHUD 接口丰富性: MBProgressHUD >> SVProgressHUD MBProgressHUD 和 SVProgressHUD 都支持简单的进度提示和文字提示.单从各自github主页上来看, , SVProgressHUD 表现出更多的灵活性,参见: SVProgressHUD–比MBProgressHUD更好用的 iOS进度提示组件.但是事实并非如此!
setForegroundColor:[UIColor whiteColor]]; //设置背景色 [SVProgressHUD setBackgroundColor:[UIColor darkGrayColor]]; //n秒后消失 [SVProgressHUD dismissWithDelay:time]; //消失动画(1S) [SVProgressHUD setFadeOutAnimationDuration:1.0]; //如果响应时间>3s 禁止用户交互 if(time >= 3){ [ SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeBlack]; }else{ [SVProgressHUD setDefaultMaskType [SVProgressHUD showImage:nil status:titleStr]; image参数传空即可 提示框如何设置动画(进场离场) 。
void (^noLocationdataBlock)(void) = ^void(void) { [SVProgressHUD __(self) weakSelf = self; if (weakSelf.locationView.adressTextView.text.length > 0) { [SVProgressHUD void (^noLocationdataBlock)(void) = ^void(void) { [SVProgressHUD } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { [SVProgressHUD ; }]; } else { [SVProgressHUD showInfoWithStatus:@"请输入经营地址"]; } }
didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{ if (error) { [SVProgressHUD showErrorWithStatus:@"保存失败"]; }else{ [SVProgressHUD showSuccessWithStatus:@"保存成功"];
在其他工程中使用carthage管理此framework 新建一个项目 创建空文件Cartfile,终端命令: touch Cartfile 编辑Cartfile文件(xcode,或其它文本编辑器),以SVProgressHUD 为例,Cartfile文件内容大致如下: github "SVProgressHUD/SVProgressHUD" ~> 1.0 运行carthage下载第三方库 carthage update
location.isInRegion){ [SVProgressHUD showInfoWithStatus:@"您最新定位不在支持范围内!"] isVisible]) { [SVProgressHUD dismiss]; } CRMLBSLocationModel *model = [ ; [SVProgressHUD showErrorWithStatus:errorInfo]; // [self isVisible]) { [SVProgressHUD dismiss]; } CRMLBSLocationModel *model = [ ; [SVProgressHUD showErrorWithStatus:errorInfo]; // [self
}else { [SVProgressHUD ; } }else { //避免没有导航栏跳转崩溃的问题 [SVProgressHUD showErrorWithStatus //其他消息类型 } }else { [SVProgressHUD ; } }else { [SVProgressHUD showErrorWithStatus:@"跳转失败,请自行前往个人中心查看。"] ; } }else { [SVProgressHUD showErrorWithStatus:@"跳转失败,请自行前往个人中心查看。"]
insertAssets:asset atIndexes:[NSIndexSet indexSetWithIndex:0]]; } error:&error]; if (error) { [SVProgressHUD showErrorWithStatus:@"保存图片失败"]; }else{ [SVProgressHUD showSuccessWithStatus:@"保存图片成功"]
多个target 现在在新建的target下导入SVProgressHUD,就显示报错了 ? targetsArray = ['LXFProject', 'LXFOtherProj'] targetsArray.each do |t| target t do pod 'SVProgressHUD
我们会在加载更多的方法里直接设置self.isLoading = false; 但是由于视图动画还在滑动就会反复触发加载更多的方法 解决方法就是延迟设置self.isLoading = false; [SVProgressHUD dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [SVProgressHUD
'Motis' pod 'ReactiveCocoa', '2.5' pod 'BlocksKit' pod 'AFNetworking' pod 'Masonry' pod 'SVProgressHUD self.viewModel.command.executionSignals.switchToLatest subscribeNext:^(NSArray<MovieModel *> *array) { @strongify(self); [SVProgressHUD showSuccessWithStatus:@"加载成功"]; self.listArray = array; [self.collectionView reloadData]; [SVProgressHUD dismissWithDelay:1.5]; }]; //执行command [self.viewModel.command execute:nil]; [SVProgressHUD
memo:%@", memo); if ([resultDic[@"ResultStatus"] isEqualToString:@"9000"]) { [SVProgressHUD showSuccessWithStatus:@"支付成功"]; }else{ [SVProgressHUD showErrorWithStatus
在OC的时代,PCH做的工作,Swift怎么办呢 解决办法: 在一个文件里@_exported import SVProgressHUD 一次,相当于全局导入。
// NSURL *relativeToURL = [NSURL URLWithString:m.url ];//必须先下载,否则无法查看文件内容 [SVProgressHUD "加载中..."]; NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:m.url]]; [SVProgressHUD dismiss]; if(data== nil){ [SVProgressHUD showInfoWithStatus:@"文件下载失败"]; NSData dataWithContentsOfURL:[NSURL URLWithString:self.url]]; if(data== nil){ [SVProgressHUD