DZNEmptyDataSet,优秀的空白页或者出错页封装
## 简单介绍
项目主页: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,优秀的空白页或者出错页封装相关推荐
- Visual Studio2005的加载此属性页时出错的解决办法(转)
现象:打开aspx页面时不能切换到设计视图,vs 2005工具箱中无控件.打开vs 2005的工具>选项>HTML设计器时提示:加载此属性页时出错 有时还会有其它错误提示,比如打开一个Wi ...
- 调用浏览器局部打印,空白、只有一页问题、火狐兼容
调用浏览器局部打印,空白.只有一页问题.火狐兼容 项目中需要局部打印页面的图表,图表类型多而杂,因此html结构中包含了canvas和iframe,iframe中又包含canvas. 刚开始根据网上的 ...
- python分解word文档为多个_将一个word文档按一页或多页拆分成多个文档
工作中,有时候碰到需要将一个比较大的word按照指定的页数分割成若干个小的word文档,下面提供分割的方法供参考: 一.按照单页拆分 1.在Word里面打开那个需要分割的文档(假设它的文件名叫做&qu ...
- 【Itext】7步制作Itext5页眉页脚pdf实现第几页共几页
itext5页眉页脚工具类,实现page x of y 完美兼容各种格式大小文档A4/B5/B3,兼容各种文档格式自动计算页脚XY轴坐标 鉴于没人做的这么细致,自己就写了一个itext5页眉页脚工具类 ...
- wps纸张大小设置成A4_word2010页面设置:手把手教你添加页眉、页脚、页码、边框和底纹...
word 2010是目前office应用里最常用的了,那么基础的入门知识你都会了吗? 今天就来手把手教大家进行简单的页面设置. 1.添加页眉.页脚 页眉位于页面的顶端,页脚位于页面的底端,它们不占用正 ...
- iText7添加页眉、页脚
iText7添加页眉.页脚 iText7添加页眉.页脚 PdfHeaderFooterEvent PdfTest iText7添加页眉.页脚 因为iText5对部分pdf操作的支持没有iText7的多 ...
- Word | 在给毕业论文添加页眉和页脚的时候,如何略过首页和第二页
简介 首先,明确一下目的:要给毕业论文添加页眉和页脚,由于首页为封面,第二页为封面的空白页,因此首面和第二面都不能添加页眉和页脚. 步骤如下. 总步骤 打开"布局"(在2010版本 ...
- Linux内核设计与实现(十)| 页高速缓存和页回写
文章目录 页高速缓存和页回写 1.缓存手段 1.1 写缓存 1.2 缓存回收 2.Linux页高速缓存 2.1 address_space对象 2.2 address_space操作 2.3 基树 2 ...
- word删除任意单个字符_如何从Word中的单个页面中删除页眉或页脚
word删除任意单个字符 You can remove or make changes to headers or footers on any page in Microsoft Word. Thi ...
最新文章
- datatable更新到mysql_SQL通过Datatable更新数据库表内容
- 福建2021高考厦门一中成绩查询,2021年福建厦门各高中中考分数线及录取时间结果查询安排...
- 别再说你不会ElasticSearch,都给你整理好了
- 局域网 两台电脑共享 密码关闭
- java中start与loop_java for-loop问题
- httpf发送 json_Java发送http请求发送json对象
- android系统中与内存有关的文件及路径
- 如何搞定知乎模拟登陆的加密难题?
- 【03】AngularJS 简介
- mkcert在windows系统上制作SSL证书
- 安卓一键新机_「科技犬」三星华为频发新品对标iPhone12,稳固安卓生态
- 简单集成华为PUSH
- 数学画图软件_数学建模竞赛要点分析 amp; 实用工具网站收集
- 佳能微单R6断电DAT文件MP4视频完美修复不卡顿
- 利用openpyxl在Excel文件中批量复制模板表格
- 国内做三维GIS的公司总结-cesium和threejs
- Marvin java图像处理
- 下载微软官方原版系统镜像
- android修改checkbox样式边框颜色
- oracle时间平均,Oracle SQL的平均时间
热门文章
- JAVA 微信支付 native方式
- Linux入门之磁盘管理(3)文件系统挂载
- 25_android下文件访问的权限
- Oracle变量的定义、赋值及使用
- 不重启程序使用最新版package
- 用Log Explorer恢复数据的基本操作
- html 将光标移动到某行,如何将QTextBrowser(其中包含html表)的光标移动到PyQt5中的特定行?...
- L1-012. 计算指数-PAT团体程序设计天梯赛GPLT
- JAVA加勒比_【JAVA】synchronized关键字
- 百度App网络深度优化系列(一):DNS优化