DZNEmptyDataSet详解

Demo传送门

摘要: 主要用于UITableView和UICollectionView,UIScrollView,数据为空时,页面一片空白,不是一个很好的用户体验。我们都希望在数据源为空的时候,给用户一些相应的提示,DZNEmptyDataSet完美解决这个问题。

使用详解

  1. 导入第三方,遵守协议
#import "UIScrollView+EmptyDataSet.h"
遵守 <DZNEmptyDataSetSource, DZNEmptyDataSetDelegate> 协议
  1. 设置代理
 self.mainTableView.emptyDataSetSource = self;
 self.mainTableView.emptyDataSetDelegate = self;
  1. 实现代理方法
  • DZNEmptyDataSetDelegate
/**
*  数据源为空渲染和显示(默认是YES)
*/
- (BOOL)emptyDataSetShouldDisplay:(UIScrollView *)scrollView
{
   return YES;
}

/**
*  是否允许点击(默认是YES)
*/
- (BOOL)emptyDataSetShouldAllowTouch:(UIScrollView *)scrollView
{
   return YES;
}
/**
*  是否允许滚动(默认是NO)
*/
- (BOOL)emptyDataSetShouldAllowScroll:(UIScrollView *)scrollView
{
   return NO;
}
/**
*  空白区域点击事件
*/
- (void)emptyDataSet:(UIScrollView *)scrollView didTapView:(UIView *)view
{
   
}
/**
*  点击按钮事件处理
*/
- (void)emptyDataSet:(UIScrollView *)scrollView didTapButton:(UIButton *)button
{
   NSLog(@"小样 不要点我了啊");
}
  • DZNEmptyDataSetSource
/**
 *  返回标题文字
 */
- (NSAttributedString *)titleForEmptyDataSet:(UIScrollView *)scrollView
{
    NSString *text = @"这是标题";
    return [[NSAttributedString alloc]initWithString:text];
}
/**
 *  返回文字详情
 */
- (NSAttributedString *)descriptionForEmptyDataSet:(UIScrollView *)scrollView
{
    NSString *text = @"这只一段短描述";
    NSMutableAttributedString *attribuString = [[NSMutableAttributedString alloc]initWithString:text attributes:nil];
    [attribuString addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:12] range:[attribuString.string rangeOfString:@"哈哈哈"]];
    return attribuString;
}
/**
 *  返回文字按钮
 */
- (NSAttributedString *)buttonTitleForEmptyDataSet:(UIScrollView *)scrollView forState:(UIControlState)state
{
    NSString *text = @"点我重新加载";
    UIFont *font = [UIFont systemFontOfSize:15];
    UIColor *color = [UIColor redColor];
    NSMutableDictionary *attributedString = [[NSMutableDictionary alloc]init];
    [attributedString setObject:font forKey:NSFontAttributeName];
    [attributedString setObject:color forKey:NSForegroundColorAttributeName];
    return [[NSAttributedString alloc]initWithString:text attributes:attributedString];
}
/**
 *  返回图片按钮
 */
- (UIImage *)buttonImageForEmptyDataSet:(UIScrollView *)scrollView forState:(UIControlState)state
{
    return [UIImage imageNamed:@"nodata"];
}
/**
 *  调整垂直位置
 */
- (CGFloat)verticalOffsetForEmptyDataSet:(UIScrollView *)scrollView
{
    return -64.f;
}
   
/**
 *  图片动画效果
 */
 - (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;
    }


最后来一波无耻的广告:淘劵吧

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容