转载

DZNEmptyDataSet,优秀的空白页或者出错页封装

简介

DZNEmptyDataSet,优秀的空白页或者出错页封装

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

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

采用给UIScrollView添加代理方法来给页面添加空白页,源码很有学习意义

导入工程

自动,

pod 'DZNEmptyDataSet'

手动

https://github.com/dzenbot/DZNEmptyDataSet 下载解压,Source文件夹下的文件拖入工程

导入头文件:

#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 {     //加入你自定义的view     UIActivityIndicatorView *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 任务池

原文  http://www.cnblogs.com/ios122/p/5143159.html
正文到此结束
Loading...