美文网首页恩美第二个APP项目
TableView无数据占位图自动处理

TableView无数据占位图自动处理

作者: 庞仕山 | 来源:发表于2017-04-28 12:07 被阅读70次

tableView没有数据时,需要展示占位图,如果项目还不成熟,没有这方面的机制,需要添加时,我们每一个使用了tableView的VC都添加代码,手动判断是否需要显示占位图,非常的麻烦,于是我就给UITableView 写了个categary, 只需要拖入文件到工程(连头文件都不需要导入),就可以完成项目中所有tableView的占位图的批量设置,非常舒服。PSSTableViewNoneData (demo链接点击此处)

用到的技术

  • Runtime 方法交换(hook)
  • Runtime 给categary动态添加属性关联
  • categary的应用

demo图片演示

1.有数据时 2.点击了清空数据时

使用方法:直接拖入工程

提供接口

  • 如果只是用到demo中默认的视图 或者 直接修改自定义的视图,则不需要导入头文件,拖进去就能用,需要修改实现的类名为:PSSNoneDataView
  • 如果需要手动设置自定义视图,或者需要手动设置视图的显现,则需要导入头文件:UITableView+PSSNoneData
  • 以下是提供的接口:
#import <UIKit/UIKit.h>
@class PSSNoneDataView;
typedef enum : NSUInteger {
    PSSNoneDataStyleNone, // 关闭此机制
    PSSNoneDataStyleDefault, // 使用PSS默认的视图 (默认视图)
    PSSNoneDataStyleDIY, // 自定义DIY视图, 如果DIY视图为nil 使用PSS默认视图
} PSSNoneDataStyle;

// 这是默认的style, 默认是使用 PSS默认视图 的
PSSNoneDataStyle PSS_DefaultStyle = PSSNoneDataStyleDefault;

@interface UITableView (PSSNoneData)

@property (nonatomic, assign) PSSNoneDataStyle pss_noneDataStyle;

/*
 * 只在 PSSNoneDataStyleDIY 下生效
 * frame 或者 布局, 需要自己给定
 */
@property (nonatomic, strong) UIView *pss_diyView;

/*
 * 描述: 是否显示 无数据视图
 * 只在 非PSSNoneDataStyleNone并且pss_isManualShow==YES  时生效
 */
@property (nonatomic, assign) BOOL pss_showNoneDataView;
/*
 * 描述: 是否手动显示 无数据视图; 默认为NO
 */
@property (nonatomic, assign) BOOL pss_isManualShow;

// 默认视图, readonly
@property (nonatomic, strong, readonly) PSSNoneDataView *pss_defaultView;

@end

@interface UIScrollView (PSS)

- (void)pss_setContentSize:(CGSize)contentSize;

@end

如果您感兴趣,想要查看.m文件,欢迎下载PSSTableViewNoneData (demo链接点击此处)

如果觉得对您有帮助,就star一下吧。您的star就是对我最大的鼓励!
如果发现什么问题,或者有什么意见,请加我qq或微信:704158807
电子邮箱:pangshishan@aliyun.com

相关文章

网友评论

    本文标题:TableView无数据占位图自动处理

    本文链接:https://www.haomeiwen.com/subject/uavozttx.html