項目主頁:https://github.com/dzenbot/DZNEmptyDataSetios
提示:主要用於UITableView和UICollectionView,也能夠用於UIScrollView,其實主要是前兩個會用到空白或者網絡出錯頁git
採用給UIScrollView添加代理方法來給頁面添加空白頁,源碼頗有學習意義github
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 任務池app