今天點哥说个维护期优化的东西...
(注:此图随便找的,如侵权请告知,将很快删除);
我的思路就是代码越简单越好.
随便举个栗子吧,以tableview为例,创建个父类:
.h
typedef void(^reloadBlock)(void);
@property (nonatomic, copy) reloadBlock reloadBlock;
// 重新加载
- (void)reloadDataWithFrame:(CGRect)frame;
.m
- (void)reloadDataWithFrame:(CGRect)frame {
self.window = [[UIWindow alloc]initWithFrame:frame];
_window.backgroundColor = UIColorRGBA(255, 255, 255, 1);
self.reloadBtn = [UIButton buttonWithType:(UIButtonTypeCustom)];
[_reloadBtn setsFrame:_window.bounds titleColor:nil bgc:UIColorRGBA(244, 245, 247, 1) titles:nil];
[_reloadBtn setImage:[DYHelper pngImgWithName:@"reloadBtn"] forState:(UIControlStateNormal)];
_reloadBtn.imageView.contentMode = UIViewContentModeCenter;
[_reloadBtn addTarget:self action:@selector(reloadBtnAction) forControlEvents:(UIControlEventTouchUpInside)];
[_window addSubview:self.reloadBtn];
[_window makeKeyAndVisible];
}
- (void)reloadBtnAction {
self.reloadBlock();
[_window resignKeyWindow];
_window = nil;
[_reloadBtn removeFromSuperview];
_reloadBtn = nil;
}
在调用的时候这样
// 加载数据失败时
[_tableview reloadDataWithFrame:(CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT))];
_tableview.reloadBlock =^{
// 此处重新发起数据请求和相关操作;
};
当然也可以写在父视图控制器上,看实际情况;