## 简单介绍

项目主页:https://github.com/dzenbot/DZNEmptyDataSet

提示:主要用于UITableView和UICollectionView,也能够用于UIScrollView,事实上主要是前两个会用到空白或者网络出错页

採用给UIScrollView加入代理方法来给页面加入空白页,源代码非常有学习意义

导入project

自己主动。

pod 'DZNEmptyDataSet'

手动

https://github.com/dzenbot/DZNEmptyDataSet 下载解压,Source目录下的文件拖入project

导入头文件:

#import "UIScrollView+EmptyDataSet.h"

初始化

    @interface MainViewController : UITableViewController <DZNEmptyDataSetSource, DZNEmptyDataSetDelegate>- (void)viewDidLoad {[super viewDidLoad];self.tableView.emptyDataSetSource = self;self.tableView.emptyDataSetDelegate = self;//这行代码必须加上,能够去除tableView的多余的线,否则会影响美观self.tableView.tableFooterView = [UIView new];}

满足代理方法,能够分别配置,都是可选的

空白页图片

    - (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView {return [UIImage imageNamed:@"empty_placeholder"];}

图片的动画效果

    - (CAAnimation *)imageAnimationForEmptyDataSet:(UIScrollView *)scrollView {CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath: @"transform"];animation.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];animation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_2, 0.0, 0.0, 1.0)];animation.duration = 0.25;animation.cumulative = YES;animation.repeatCount = MAXFLOAT;return animation;}

标题文本。具体描写叙述。富文本样式

    - (NSAttributedString *)titleForEmptyDataSet:(UIScrollView *)scrollView {NSString *text = @"Please Allow Photo Access";NSDictionary *attributes = @{NSFontAttributeName: [UIFont boldSystemFontOfSize:18.0f],NSForegroundColorAttributeName: [UIColor darkGrayColor]};return [[NSAttributedString alloc] initWithString:text attributes:attributes];}- (NSAttributedString *)descriptionForEmptyDataSet:(UIScrollView *)scrollView {NSString *text = @"This allows you to share photos from your library and save photos to your camera roll.";NSMutableParagraphStyle *paragraph = [NSMutableParagraphStyle new];paragraph.lineBreakMode = NSLineBreakByWordWrapping;paragraph.alignment = NSTextAlignmentCenter;NSDictionary *attributes = @{NSFontAttributeName: [UIFont systemFontOfSize:14.0f],NSForegroundColorAttributeName: [UIColor lightGrayColor],NSParagraphStyleAttributeName: paragraph};return [[NSAttributedString alloc] initWithString:text attributes:attributes];                      }

按钮文本或者背景样式

    - (NSAttributedString *)buttonTitleForEmptyDataSet:(UIScrollView *)scrollView forState:(UIControlState)state {NSDictionary *attributes = @{NSFontAttributeName: [UIFont boldSystemFontOfSize:17.0f]};return [[NSAttributedString alloc] initWithString:@"Continue" attributes:attributes];}- (UIImage *)buttonImageForEmptyDataSet:(UIScrollView *)scrollView forState:(UIControlState)state {return [UIImage imageNamed:@"button_image"];}

空白页的背景色

    - (UIColor *)backgroundColorForEmptyDataSet:(UIScrollView *)scrollView {return [UIColor whiteColor];}

假设需求无法满足。你能够自己定义

    - (UIView *)customViewForEmptyDataSet:(UIScrollView *)scrollView {//加入你自己定义的viewUIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];[activityView startAnimating];return activityView;}

其它需求

    //是否显示空白页。默认YES- (BOOL)emptyDataSetShouldDisplay:(UIScrollView *)scrollView {return YES;}//是否同意点击,默认YES- (BOOL)emptyDataSetShouldAllowTouch:(UIScrollView *)scrollView {return YES;}//是否同意滚动,默认NO- (BOOL)emptyDataSetShouldAllowScroll:(UIScrollView *)scrollView {return YES;}//图片是否要动画效果,默认NO- (BOOL) emptyDataSetShouldAllowImageViewAnimate:(UIScrollView *)scrollView {return YES;}//空白页点击事件- (void)emptyDataSetDidTapView:(UIScrollView *)scrollView {}//空白页按钮点击事件- (void)emptyDataSetDidTapButton:(UIScrollView *)scrollView {}

注: 文章由我们 iOS122(http://www.ios122.com)的小伙伴 @酌晨茗 整理,喜欢就一起參与: iOS122 任务池

转载于:https://www.cnblogs.com/wzjhoutai/p/7307468.html

DZNEmptyDataSet,优秀的空白页或者出错页封装相关推荐

  1. Visual Studio2005的加载此属性页时出错的解决办法(转)

    现象:打开aspx页面时不能切换到设计视图,vs 2005工具箱中无控件.打开vs 2005的工具>选项>HTML设计器时提示:加载此属性页时出错 有时还会有其它错误提示,比如打开一个Wi ...

  2. 调用浏览器局部打印,空白、只有一页问题、火狐兼容

    调用浏览器局部打印,空白.只有一页问题.火狐兼容 项目中需要局部打印页面的图表,图表类型多而杂,因此html结构中包含了canvas和iframe,iframe中又包含canvas. 刚开始根据网上的 ...

  3. python分解word文档为多个_将一个word文档按一页或多页拆分成多个文档

    工作中,有时候碰到需要将一个比较大的word按照指定的页数分割成若干个小的word文档,下面提供分割的方法供参考: 一.按照单页拆分 1.在Word里面打开那个需要分割的文档(假设它的文件名叫做&qu ...

  4. 【Itext】7步制作Itext5页眉页脚pdf实现第几页共几页

    itext5页眉页脚工具类,实现page x of y 完美兼容各种格式大小文档A4/B5/B3,兼容各种文档格式自动计算页脚XY轴坐标 鉴于没人做的这么细致,自己就写了一个itext5页眉页脚工具类 ...

  5. wps纸张大小设置成A4_word2010页面设置:手把手教你添加页眉、页脚、页码、边框和底纹...

    word 2010是目前office应用里最常用的了,那么基础的入门知识你都会了吗? 今天就来手把手教大家进行简单的页面设置. 1.添加页眉.页脚 页眉位于页面的顶端,页脚位于页面的底端,它们不占用正 ...

  6. iText7添加页眉、页脚

    iText7添加页眉.页脚 iText7添加页眉.页脚 PdfHeaderFooterEvent PdfTest iText7添加页眉.页脚 因为iText5对部分pdf操作的支持没有iText7的多 ...

  7. Word | 在给毕业论文添加页眉和页脚的时候,如何略过首页和第二页

    简介 首先,明确一下目的:要给毕业论文添加页眉和页脚,由于首页为封面,第二页为封面的空白页,因此首面和第二面都不能添加页眉和页脚. 步骤如下. 总步骤 打开"布局"(在2010版本 ...

  8. Linux内核设计与实现(十)| 页高速缓存和页回写

    文章目录 页高速缓存和页回写 1.缓存手段 1.1 写缓存 1.2 缓存回收 2.Linux页高速缓存 2.1 address_space对象 2.2 address_space操作 2.3 基树 2 ...

  9. word删除任意单个字符_如何从Word中的单个页面中删除页眉或页脚

    word删除任意单个字符 You can remove or make changes to headers or footers on any page in Microsoft Word. Thi ...

最新文章

  1. datatable更新到mysql_SQL通过Datatable更新数据库表内容
  2. 福建2021高考厦门一中成绩查询,2021年福建厦门各高中中考分数线及录取时间结果查询安排...
  3. 别再说你不会ElasticSearch,都给你整理好了
  4. 局域网 两台电脑共享 密码关闭
  5. java中start与loop_java for-loop问题
  6. httpf发送 json_Java发送http请求发送json对象
  7. android系统中与内存有关的文件及路径
  8. 如何搞定知乎模拟登陆的加密难题?
  9. 【03】AngularJS 简介
  10. mkcert在windows系统上制作SSL证书
  11. 安卓一键新机_「科技犬」三星华为频发新品对标iPhone12,稳固安卓生态
  12. 简单集成华为PUSH
  13. 数学画图软件_数学建模竞赛要点分析 amp; 实用工具网站收集
  14. 佳能微单R6断电DAT文件MP4视频完美修复不卡顿
  15. 利用openpyxl在Excel文件中批量复制模板表格
  16. 国内做三维GIS的公司总结-cesium和threejs
  17. Marvin java图像处理
  18. 下载微软官方原版系统镜像
  19. android修改checkbox样式边框颜色
  20. oracle时间平均,Oracle SQL的平均时间

热门文章

  1. JAVA 微信支付 native方式
  2. Linux入门之磁盘管理(3)文件系统挂载
  3. 25_android下文件访问的权限
  4. Oracle变量的定义、赋值及使用
  5. 不重启程序使用最新版package
  6. 用Log Explorer恢复数据的基本操作
  7. html 将光标移动到某行,如何将QTextBrowser(其中包含html表)的光标移动到PyQt5中的特定行?...
  8. L1-012. 计算指数-PAT团体程序设计天梯赛GPLT
  9. JAVA加勒比_【JAVA】synchronized关键字
  10. 百度App网络深度优化系列(一):DNS优化