Commit 0ec6593c authored by 汪洋's avatar 汪洋

删除emptyView,移到GMKit中

parent 56fd8522
...@@ -14,8 +14,10 @@ PODS: ...@@ -14,8 +14,10 @@ PODS:
- AFNetworking/Serialization (3.1.0) - AFNetworking/Serialization (3.1.0)
- AFNetworking/UIKit (3.1.0): - AFNetworking/UIKit (3.1.0):
- AFNetworking/NSURLSession - AFNetworking/NSURLSession
- Base64nl (1.2)
- GMBase (0.0.24): - GMBase (0.0.24):
- GMHud (= 0.1.1) - GMHud
- GMKit
- GMNetService - GMNetService
- GMPhobos - GMPhobos
- GMRefresh - GMRefresh
...@@ -25,10 +27,44 @@ PODS: ...@@ -25,10 +27,44 @@ PODS:
- UITableView+FDTemplateLayoutCell (= 1.4) - UITableView+FDTemplateLayoutCell (= 1.4)
- GMCache (0.1.1): - GMCache (0.1.1):
- TMCache (~> 2.1.0) - TMCache (~> 2.1.0)
- GMFoundation (0.0.4):
- Base64nl (= 1.2)
- GMHud (0.1.1): - GMHud (0.1.1):
- MBProgressHUD (= 0.9.2) - MBProgressHUD (= 0.9.2)
- GMKit (0.7.19):
- GMFoundation
- GMKit/Category (= 0.7.19)
- GMKit/FDFullscreenPopGesture (= 0.7.19)
- GMKit/Kit (= 0.7.19)
- GMKit/Protocol (= 0.7.19)
- GMOCConstant
- Masonry (= 1.0.1)
- SDWebImage (= 3.7.6)
- GMKit/Category (0.7.19):
- GMFoundation
- GMOCConstant
- Masonry (= 1.0.1)
- SDWebImage (= 3.7.6)
- GMKit/FDFullscreenPopGesture (0.7.19):
- GMFoundation
- GMOCConstant
- Masonry (= 1.0.1)
- SDWebImage (= 3.7.6)
- GMKit/Kit (0.7.19):
- GMFoundation
- GMKit/Category (= 0.7.19)
- GMKit/Protocol (= 0.7.19)
- GMOCConstant
- Masonry (= 1.0.1)
- SDWebImage (= 3.7.6)
- GMKit/Protocol (0.7.19):
- GMFoundation
- GMOCConstant
- Masonry (= 1.0.1)
- SDWebImage (= 3.7.6)
- GMNetService (0.1.5): - GMNetService (0.1.5):
- AFNetworking (= 3.1.0) - AFNetworking (= 3.1.0)
- GMOCConstant (0.0.3)
- GMPhobos (0.3.3): - GMPhobos (0.3.3):
- GMCache (~> 0.1.1) - GMCache (~> 0.1.1)
- GMRefresh (0.1.5): - GMRefresh (0.1.5):
...@@ -37,6 +73,9 @@ PODS: ...@@ -37,6 +73,9 @@ PODS:
- Masonry (1.0.1) - Masonry (1.0.1)
- MBProgressHUD (0.9.2) - MBProgressHUD (0.9.2)
- MJRefresh (3.1.12) - MJRefresh (3.1.12)
- SDWebImage (3.7.6):
- SDWebImage/Core (= 3.7.6)
- SDWebImage/Core (3.7.6)
- TMCache (2.1.0) - TMCache (2.1.0)
- UITableView+FDTemplateLayoutCell (1.4) - UITableView+FDTemplateLayoutCell (1.4)
...@@ -49,16 +88,21 @@ EXTERNAL SOURCES: ...@@ -49,16 +88,21 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS: SPEC CHECKSUMS:
AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67
GMBase: e102d39978d80f37f6aa546f362877ce6031f1b9 Base64nl: a497bdcd1c01ea793d36b399016195a8713c0e95
GMBase: fbf9da56b66675368d536b402f06502386e582d7
GMCache: 73855b613b9d7e34f4f37ad425e8b8153b760c04 GMCache: 73855b613b9d7e34f4f37ad425e8b8153b760c04
GMFoundation: 395f1083c40aa38e9fb031726991dbc20247e2f9
GMHud: 67c24abb83777c61e43741d4a803f7b6d8ad4e1e GMHud: 67c24abb83777c61e43741d4a803f7b6d8ad4e1e
GMKit: c23a05b5505b5f72b6c34686fa9a56a5ab6efc6f
GMNetService: 59825077fcb1b7d332023e9ad511239dc70a8879 GMNetService: 59825077fcb1b7d332023e9ad511239dc70a8879
GMOCConstant: 39371248b4d8d54929391bfcd2c5883776436c4b
GMPhobos: c32984b4902cb6dd931a53d647931c2d4fc00a12 GMPhobos: c32984b4902cb6dd931a53d647931c2d4fc00a12
GMRefresh: b9f0674b9b14c533ec2586147ea40a833ed5867d GMRefresh: b9f0674b9b14c533ec2586147ea40a833ed5867d
JSONModel: 12523685c4b623553ccf844bbbf7007624317b2c JSONModel: 12523685c4b623553ccf844bbbf7007624317b2c
Masonry: a1a931a0d08870ed8ae415a2ea5ea68ebcac77df Masonry: a1a931a0d08870ed8ae415a2ea5ea68ebcac77df
MBProgressHUD: 1569cf7ace17a8bac47aabfbb8580a49690386d1 MBProgressHUD: 1569cf7ace17a8bac47aabfbb8580a49690386d1
MJRefresh: b96cdb21c4aa75a7b07654311ab2f315c497e806 MJRefresh: b96cdb21c4aa75a7b07654311ab2f315c497e806
SDWebImage: c325cf02c30337336b95beff20a13df489ec0ec9
TMCache: 95ebcc9b3c7e90fb5fd8fc3036cba3aa781c9bed TMCache: 95ebcc9b3c7e90fb5fd8fc3036cba3aa781c9bed
UITableView+FDTemplateLayoutCell: 234e1582bcc4e18461af91155123bb96538ed030 UITableView+FDTemplateLayoutCell: 234e1582bcc4e18461af91155123bb96538ed030
......
...@@ -17,5 +17,6 @@ Pod::Spec.new do |s| ...@@ -17,5 +17,6 @@ Pod::Spec.new do |s|
s.dependency 'MBProgressHUD' s.dependency 'MBProgressHUD'
s.dependency 'Masonry' , '1.0.1' s.dependency 'Masonry' , '1.0.1'
s.dependency 'GMPhobos' s.dependency 'GMPhobos'
s.dependency 'GMHud', '0.1.1' s.dependency 'GMHud'
s.dependency 'GMKit'
end end
//
// OCEmptyView.h
// Gengmei
//
// Created by wangyang on 16/7/9.
// Copyright © 2016年 更美互动信息科技有限公司. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface OCRedGradientButton : UIButton
@end
typedef NS_ENUM(NSUInteger, OCEmptyViewType) {
OCEmptyViewTypeEmpty,
OCEmptyViewTypeException
};
@protocol OCEmptyViewDelegate <NSObject>
- (void)emptyViewDidClickReload;
@end
@interface OCEmptyView : UIView
@property (nonatomic, strong) UIImageView *tipIcon;
@property (nonatomic, strong) UILabel *tipLabel;
@property (nonatomic, strong) OCRedGradientButton *tipButton;
@property (nonatomic, assign) OCEmptyViewType type;
@property (nonatomic, weak) id<OCEmptyViewDelegate> delegate;
@property (nonatomic, copy) NSString *tipImage;
@property (nonatomic, copy) NSString *tipText;
@end
//
// OCEmptyView.m
// Gengmei
//
// Created by wangyang on 16/7/9.
// Copyright © 2016年 更美互动信息科技有限公司. All rights reserved.
//
#import "OCEmptyView.h"
#import "GMBaseUtil.h"
#import <Masonry/Masonry.h>
@implementation OCRedGradientButton
-(id)init
{
self = [super init];
if (self) {
self.clipsToBounds = YES;
}
return self;
}
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.clipsToBounds = YES;
}
return self;
}
- (void)layoutSubviews{
[super layoutSubviews];
self.layer.cornerRadius = MIN(self.frame.size.height, self.frame.size.width)/2;
}
- (void)drawRect:(CGRect)rect{
NSArray *colors = @[[UIColor colorWithRed:1 green:89.0/255 blue:99.0/255 alpha:1],[UIColor colorWithRed:1 green:112.0/255 blue:150.0/255 alpha:1]];
NSMutableArray *ar = [NSMutableArray array];
for(UIColor *c in colors) {
[ar addObject:(id)c.CGColor];
}
UIGraphicsBeginImageContextWithOptions(self.frame.size, YES, 1);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGColorSpaceRef colorSpace = CGColorGetColorSpace([[colors lastObject] CGColor]);
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (CFArrayRef)ar, NULL);
CGPoint start = CGPointMake(self.frame.size.width, 0.0);
CGPoint end = CGPointMake(0, self.frame.size.height);
CGContextDrawLinearGradient(context, gradient, start, end, kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
CGGradientRelease(gradient);
CGContextRestoreGState(context);
CGColorSpaceRelease(colorSpace);
UIGraphicsEndImageContext();
[self setBackgroundImage:image forState:UIControlStateNormal];
[self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
}
@end
@implementation OCEmptyView
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self setup];
}
return self;
}
- (void)awakeFromNib{
[super awakeFromNib];
[self setup];
}
- (void)setup{
self.backgroundColor = [UIColor whiteColor];
_tipIcon = [UIImageView new];
_tipLabel = [UILabel new];
_tipButton = [OCRedGradientButton buttonWithType:UIButtonTypeCustom];
_tipButton.frame = CGRectMake(0, 0, 10, 10); //给一个默认的rect,让系统调用DrawRect方法
[self addSubview:_tipIcon];
[_tipIcon addSubview:_tipLabel];
[self addSubview:_tipButton];
_tipLabel.numberOfLines = 2;
_tipLabel.preferredMaxLayoutWidth = 300;
_tipLabel.textColor = [UIColor colorWithhex:0x666666];
_tipLabel.font = [UIFont navigationFontWithSize:15];
_tipLabel.textAlignment = NSTextAlignmentCenter;
_tipButton.hidden = YES;
[_tipButton setTitle:@"重新加载" forState:UIControlStateNormal];
_tipButton.titleLabel.font = [UIFont navigationFontWithSize:16];
[_tipButton setTitleColor:[UIColor colorWithhex:0x666666] forState:UIControlStateNormal];
[_tipButton addTarget:self action:@selector(reloadBtnTap) forControlEvents:UIControlEventTouchUpInside];
}
- (void)setType:(OCEmptyViewType)type{
_type = type;
switch (self.type) {
case OCEmptyViewTypeEmpty:{
_tipButton.hidden = YES;
_tipIcon.image = [UIImage imageNamed:@"empty"];
_tipLabel.text = @"此处太寂寥,社区等你撩";
break;
}
case OCEmptyViewTypeException:{
_tipButton.hidden = NO;
_tipIcon.image = [UIImage imageNamed:@"network_failed"];
_tipLabel.text = @"原谅我一看到美人就不淡定";
}
default:
break;
}
}
- (void)layoutSubviews {
[super layoutSubviews];
if (_tipImage.length > 0) {
_tipIcon.image = [UIImage imageNamed:_tipImage];
}
if (_tipText.length > 0) {
_tipLabel.text = _tipText;
}
}
- (void)updateConstraints{
[super updateConstraints];
[_tipIcon mas_remakeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self);
make.centerY.equalTo(self).offset(-75);
// make.size.mas_equalTo(CGSizeMake(175, 198));
}];
[_tipLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(_tipIcon.mas_bottom).offset(-15);
make.centerX.mas_equalTo(self);
}];
[_tipButton mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(_tipIcon.mas_bottom).offset(15);
make.centerX.equalTo(self);
make.width.mas_equalTo(150);
make.height.mas_equalTo(33);
}];
}
- (void)reloadBtnTap {
if ([self.delegate respondsToSelector:@selector(emptyViewDidClickReload)]) {
[self.delegate emptyViewDidClickReload];
}
}
@end
...@@ -35,6 +35,9 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -35,6 +35,9 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, strong, readonly) OCNavigatioinBarButton *rightButton; @property (nonatomic, strong, readonly) OCNavigatioinBarButton *rightButton;
@property (nonatomic, strong, readonly) OCNavigatioinBarButton *nearRightButton; @property (nonatomic, strong, readonly) OCNavigatioinBarButton *nearRightButton;
/**
leftIcon 有默认值:back
*/
@property (nonatomic, copy, nullable) NSString *leftIcon; @property (nonatomic, copy, nullable) NSString *leftIcon;
@property (nonatomic, copy, nullable) NSString *rightIcon; @property (nonatomic, copy, nullable) NSString *rightIcon;
@property (nonatomic, copy, nullable) NSString *nearRightIcon; @property (nonatomic, copy, nullable) NSString *nearRightIcon;
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
#import "WMBaseViewController.h" #import "WMBaseViewController.h"
#import "WMFetchDataViewModel.h" #import "WMFetchDataViewModel.h"
#import "OCEmptyView.h"
@interface WMBaseCollectionController : WMBaseViewController <UICollectionViewDelegateFlowLayout,UICollectionViewDataSource>{ @interface WMBaseCollectionController : WMBaseViewController <UICollectionViewDelegateFlowLayout,UICollectionViewDataSource>{
BOOL _needHeaderRefresh; BOOL _needHeaderRefresh;
...@@ -26,8 +25,6 @@ ...@@ -26,8 +25,6 @@
*/ */
@property (nonatomic, strong) UICollectionView *collectionView; @property (nonatomic, strong) UICollectionView *collectionView;
@property (nonatomic, strong) OCEmptyView *emptyView;
/** /**
* @brief 默认返回一个 flowLayout * @brief 默认返回一个 flowLayout
@code @code
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
#import <Masonry/Masonry.h> #import <Masonry/Masonry.h>
@import GMHud; @import GMHud;
@interface WMBaseCollectionController () <OCEmptyViewDelegate> @interface WMBaseCollectionController ()
@end @end
...@@ -40,23 +40,7 @@ ...@@ -40,23 +40,7 @@
[_collectionView mas_makeConstraints:^(MASConstraintMaker *make) { [_collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.view).insets(UIEdgeInsetsMake(64, 0, 0, 0)); make.edges.equalTo(self.view).insets(UIEdgeInsetsMake(64, 0, 0, 0));
}]; }];
// collectionView的EmptyView
_emptyView = [[OCEmptyView alloc] initWithFrame:CGRectZero];
_emptyView.hidden = YES;
if([self getEmptyText].length > 0){
_emptyView.tipText = [self getEmptyText];
}
_emptyView.delegate = self;
[self.view addSubview:_emptyView];
[_emptyView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(0);
make.right.mas_equalTo(0);
make.top.mas_equalTo(0);
make.bottom.mas_equalTo(0);
}];
__weak __typeof(self)weakSelf = self; __weak __typeof(self)weakSelf = self;
if (_needHeaderRefresh) { if (_needHeaderRefresh) {
_collectionView.mj_header = [GMRefreshHeader headerWithRefreshingBlock:^{ _collectionView.mj_header = [GMRefreshHeader headerWithRefreshingBlock:^{
...@@ -69,7 +53,6 @@ ...@@ -69,7 +53,6 @@
}]; }];
} }
//获取数据 //获取数据
if (_immediateLoad) { if (_immediateLoad) {
[self loadRemoteData]; [self loadRemoteData];
...@@ -94,13 +77,13 @@ ...@@ -94,13 +77,13 @@
_collectionView.hidden = NO; _collectionView.hidden = NO;
if ([[_viewModel fetchDataSuccess] boolValue]) { if ([[_viewModel fetchDataSuccess] boolValue]) {
if ([[self.viewModel dataArray] count] == 0 && [self.viewModel fetchDataNilMsg]) { if ([[self.viewModel dataArray] count] == 0 && [self.viewModel fetchDataNilMsg]) {
[self showEmptyView:OCEmptyViewTypeEmpty]; [self showEmptyView:GMEmptyViewTypeEmpty];
} else { } else {
[self hideEmptyView]; [self hideEmptyView];
} }
}else{ }else{
[self showEmptyView:OCEmptyViewTypeException]; [self showEmptyView:GMEmptyViewTypeException];
} }
// 调用reloadData,并不会立即执行,而是下更新周期来了之后才可以。 // 调用reloadData,并不会立即执行,而是下更新周期来了之后才可以。
...@@ -208,19 +191,7 @@ ...@@ -208,19 +191,7 @@
return _collectionViewLayout; return _collectionViewLayout;
} }
- (void)showEmptyView:(OCEmptyViewType)type {
_emptyView.type = type;
_emptyView.hidden = NO;
[self getEmptyText];
[_emptyView setNeedsLayout];
}
- (void)hideEmptyView {
_emptyView.hidden = YES;
}
#pragma mark - OCEmptyViewDelegate #pragma mark - OCEmptyViewDelegate
- (void)emptyViewDidClickReload{ - (void)emptyViewDidClickReload{
[self loadRemoteData]; [self loadRemoteData];
} }
......
...@@ -8,10 +8,9 @@ ...@@ -8,10 +8,9 @@
#import "WMBaseViewController.h" #import "WMBaseViewController.h"
#import <UITableView_FDTemplateLayoutCell/UITableView+FDTemplateLayoutCell.h> #import <UITableView_FDTemplateLayoutCell/UITableView+FDTemplateLayoutCell.h>
#import "OCEmptyView.h"
#import "WMFetchDataViewModel.h" #import "WMFetchDataViewModel.h"
@interface WMBaseListViewController : WMBaseViewController<UITableViewDelegate,UITableViewDataSource, OCEmptyViewDelegate> @interface WMBaseListViewController : WMBaseViewController<UITableViewDelegate,UITableViewDataSource>
{ {
UITableView *_table; UITableView *_table;
...@@ -35,7 +34,7 @@ ...@@ -35,7 +34,7 @@
/** @brief viewModel*/ /** @brief viewModel*/
@property (nonatomic,strong) WMFetchDataViewModel *viewModel; @property (nonatomic,strong) WMFetchDataViewModel *viewModel;
@property (nonatomic, strong) UITableView *table; @property (nonatomic, strong) UITableView *table;
@property (nonatomic, strong) OCEmptyView *emptyView;
/** @brief 控制当前VC的viewmodel是不是立即请求网络 **/ /** @brief 控制当前VC的viewmodel是不是立即请求网络 **/
@property (nonatomic , assign) BOOL immediateLoad; @property (nonatomic , assign) BOOL immediateLoad;
...@@ -77,16 +76,4 @@ ...@@ -77,16 +76,4 @@
* @since 6.0.0 * @since 6.0.0
*/ */
- (void)hideNavigationBar; - (void)hideNavigationBar;
- (void)hideEmptyView;
/*!
* @author zhaiguojun, 16-06-28
*
* @brief 给子类设置空view的文案
*
* @param text
*
* @since 6.1.0
*/
- (NSString *)getEmptyText;
@end @end
...@@ -57,21 +57,6 @@ ...@@ -57,21 +57,6 @@
make.bottom.mas_equalTo(0); make.bottom.mas_equalTo(0);
}]; }];
// baseList的EmptyView
_emptyView = [[OCEmptyView alloc] initWithFrame:CGRectZero];
_emptyView.hidden = YES;
if([self getEmptyText].length > 0){
_emptyView.tipText = [self getEmptyText];
}
_emptyView.delegate = self;
[self.view addSubview:_emptyView];
[_emptyView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(0);
make.right.mas_equalTo(0);
make.top.mas_equalTo(0);
make.bottom.mas_equalTo(0);
}];
__weak __typeof(self)weakSelf = self; __weak __typeof(self)weakSelf = self;
if (_needHeaderRefresh) { if (_needHeaderRefresh) {
_table.mj_header = [GMRefreshHeader headerWithRefreshingBlock:^{ _table.mj_header = [GMRefreshHeader headerWithRefreshingBlock:^{
...@@ -188,12 +173,12 @@ ...@@ -188,12 +173,12 @@
[self hideLoading]; [self hideLoading];
if ([[self.viewModel fetchDataSuccess] boolValue]) { if ([[self.viewModel fetchDataSuccess] boolValue]) {
if ([[self.viewModel dataArray] count] == 0) { if ([[self.viewModel dataArray] count] == 0) {
[self showEmptyView:OCEmptyViewTypeEmpty]; [self showEmptyView:GMEmptyViewTypeEmpty];
}else { }else {
[self hideEmptyView]; [self hideEmptyView];
} }
}else{ }else{
[self showEmptyView:OCEmptyViewTypeException]; [self showEmptyView:GMEmptyViewTypeException];
} }
if (_table!=nil) { if (_table!=nil) {
...@@ -207,19 +192,6 @@ ...@@ -207,19 +192,6 @@
} }
} }
- (void)showEmptyView:(OCEmptyViewType)type {
_emptyView.type = type;
_emptyView.hidden = NO;
_emptyView.tipText = [self getEmptyText];
[_emptyView setNeedsUpdateConstraints];
}
- (void)hideEmptyView {
_emptyView.hidden = YES;
}
- (void)dealloc{ - (void)dealloc{
[self removeKVO]; [self removeKVO];
// 因为fetchDataSuccess是在viewDidLoad中监听的,所以需要一个判断 // 因为fetchDataSuccess是在viewDidLoad中监听的,所以需要一个判断
...@@ -228,9 +200,8 @@ ...@@ -228,9 +200,8 @@
} }
} }
#pragma mark - OCEmptyViewDelegate #pragma mark - GMEmptyView
- (void)emptyViewDidClickReload {
- (void)emptyViewDidClickReload{
[self loadRemoteData]; [self loadRemoteData];
} }
...@@ -240,6 +211,4 @@ ...@@ -240,6 +211,4 @@
} }
return @""; return @"";
} }
@end @end
...@@ -9,8 +9,9 @@ ...@@ -9,8 +9,9 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#import "OCNavigatioinBar.h" #import "OCNavigatioinBar.h"
#import <GMPhobos/GMPhobos-umbrella.h> #import <GMPhobos/GMPhobos-umbrella.h>
@import GMKit;
@interface WMBaseViewController : UIViewController <OCNavigatioinBarDelegate> @interface WMBaseViewController : UIViewController <OCNavigatioinBarDelegate, GMEmptyViewDelegate>
@property (nonatomic, strong) OCNavigatioinBar *navigationBar; @property (nonatomic, strong) OCNavigatioinBar *navigationBar;
/** /**
默认值为NO,表示导航栏自动被WMBaseViewController管理,永远在所有的view最上方。 默认值为NO,表示导航栏自动被WMBaseViewController管理,永远在所有的view最上方。
...@@ -18,9 +19,27 @@ ...@@ -18,9 +19,27 @@
*/ */
@property (nonatomic, assign) BOOL controlNavigationByYou; @property (nonatomic, assign) BOOL controlNavigationByYou;
@property (nonatomic, strong) GMEmptyView *emptyView;
/** /**
* @brief 因为controller会有initWithCoder,init,initWithNib三种方式,为了避免子类代码的疏忽导致父类自定义init内容没有覆盖到,所以统一使用initController方法。需要调用super * @brief 因为controller会有initWithCoder,init,initWithNib三种方式,为了避免子类代码的疏忽导致父类自定义init内容没有覆盖到,所以统一使用initController方法。需要调用super
*/ */
- (void)initController __attribute__((objc_requires_super)); - (void)initController __attribute__((objc_requires_super));
- (void)pushViewController:(UIViewController *)controller; - (void)pushViewController:(UIViewController *)controller;
#pragma mark - Empty
- (void)showEmptyView:(GMEmptyViewType)type;
- (void)hideEmptyView;
/*!
* @author zhaiguojun, 16-06-28
*
* @brief 给子类设置空view的文案
*
* @param text
*
* @since 6.1.0
*/
- (NSString *)getEmptyText;
- (void)emptyViewDidClickReload;
@end @end
...@@ -61,6 +61,20 @@ ...@@ -61,6 +61,20 @@
[self hideLeftButtonForRootController]; [self hideLeftButtonForRootController];
//保证一些网络请求需要接参数referer的时候referer是有值的 //保证一些网络请求需要接参数referer的时候referer是有值的
[self initReferer]; [self initReferer];
[self setupEmptyView];
}
- (void)setupEmptyView {
_emptyView = [[GMEmptyView alloc] initWithFrame:CGRectZero];
_emptyView.hidden = YES;
_emptyView.delegate = self;
[self.view addSubview:_emptyView];
[_emptyView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(0);
make.right.mas_equalTo(0);
make.top.mas_equalTo(0);
make.bottom.mas_equalTo(0);
}];
} }
- (void)viewDidLayoutSubviews { - (void)viewDidLayoutSubviews {
...@@ -156,4 +170,18 @@ ...@@ -156,4 +170,18 @@
[self dismissViewControllerAnimated:YES completion:nil]; [self dismissViewControllerAnimated:YES completion:nil];
} }
} }
#pragma mark - GMEmptyView
- (void)showEmptyView:(GMEmptyViewType)type {
_emptyView.type = type;
_emptyView.hidden = NO;
[self.view bringSubviewToFront:_emptyView];
}
- (void)hideEmptyView {
_emptyView.hidden = YES;
}
- (void)emptyViewDidClickReload {}
@end @end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment