WYNullView 1.0.3

WYNullView 1.0.3

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最后发布2017年8月

wyman 管理。



  • wyman

当视图内容为空时使用的一种简单方式

概述

如何使用

  • CocoaPods 安装:pod 'WYNullView'

  • 导入主文件:#import "WYNullView.h"

  • 在空状态下显示默认内容,然后您所需要做的就是

if (showNullView) { // 无数据,empty data -》 show nullview
  [self.tableView wy_showNullView];
} else { // 有数据,data -》 hide nullview
  [self.tableView wy_hideNullView];
}
  • 您将能够完全自定义您的应用程序中空状态的样式和内容
if (showNullView) { // 无数据,empty data -》 show nullview
  [self.tableView wy_showNullView:^UIView *(NullView *defaultNullView) {
     // you can do any constom operation in this block, even return a new constom UIView obj 
     // rerurn [UIView new];
     defaultNullView.desText = @"基于NullView自定义";
     defaultNullView.frame = CGRectMake(10, 10, defaultNullView.frame.size.width, defaultNullView.frame.size.height);
     defaultNullView.backgroundColor = [UIColor cyanColor];
     return defaultNullView;
  } heightOffset:0.0];
} else { // 有数据,data -》 hide nullview
  [self.tableView wy_hideNullView];
}

实现

  • UIView类别添加关联对象 "wy_nullView"
///> 空视图
@property (nonatomic, strong) UIView *wy_nullView;
  • 寻找NullView链

    • + (void)wy_configGlobleNullView:(NullViewHandle)nullViewHandle
    • - (void)wy_configNullView:(NullViewHandle)nullViewHandle
    • - (void)wy_showNullView:(NullViewHandle)nullViewHandle heightOffset:(CGFloat)offset
  • NullViewHandle 类型

typedef UIView *(^NullViewHandle)(NullView *defaultNullView);
  • 不同的方法可以用不同的方式使用

    • 全局配置【无论视图对象是什么类型,都会从 "wy_configGlobleNullView" nullViewHandle 返回相同的内容】
     [UIView wy_configGlobleNullView:^UIView *(NullView *defaultNullView) {
        // return globalNullView...
     }];
    • 视图配置【一旦配置,就可以直接调用 "wy_showNullView",】
     - (void)viewDidLoad {
       [mView wy_configNullView:^UIView *(NullView *defaultNullView) {
          // return nullView...
       }];
     }
     - (void)func1 {
       ...
       [mView wy_showNullView];
       ...
     }
     - (void)func2 {
       ...
       [mView wy_showNullView];
       ...
     }
    • 如果您有充足的时间,可以执行以下操作【相当于上面】
     		
     - (void)func1 {
       ...
       [mView wy_showNullView:^UIView *(NullView *defaultNullView) {
          // return nullView...
       } heightOffset:0.0]];
       ...
     }
     - (void)func2 {
       ...
       [mView wy_showNullView:^UIView *(NullView *defaultNullView) {
         // return nullView...
        } heightOffset:0.0]];
       ...
     }
  • 控制特殊子视图的显示/隐藏

    • 过滤对象
     // add objc_whitelist 
     [[mView wy_objWhitelist] addObject:makeWeakReference(mView_subView)];
    
    • 过滤类
     // add class_whitelist
     [[self.tableView wy_classWhitelist] addObject:makeWeakReference([mView_subView class])];

希望

如果您认为它有用,请为我 star,自由分享您的想法,Issue 或 pull requests

许可证

MIT