UI定义了一套gif, 用于上下拉刷新。项目里是用MJRefresh做上下拉刷新的。
做这块并不难,但是要清晰,自定义内容应该在哪里配置处理。
- (void)placeSubviews {
[super placeSubviews];
//自定义UI
}
- (void)prepare {
[super prepare];
//frame相关
}
以上两个地方是关键。
项目中的配置:
.h文件:
#import <Foundation/Foundation.h>
/** 进入刷新状态的回调 */
typedef void (^refreshingBlock)(void);
@class YZRefreshGifHeader,YZRefreshGifFooter;
@interface YZMJRefreshTool : NSObject
+ (YZRefreshGifHeader *)headerWithRefreshingBlock:(refreshingBlock)refreshingBlk ;
+ (YZRefreshGifFooter *)footerWithRefreshingBlock:(refreshingBlock)refreshingBlk;
@end
@interface YZRefreshGifHeader : MJRefreshGifHeader
@end
@interface YZRefreshGifFooter : MJRefreshBackGifFooter
@end
.m文件:
#import "YZMJRefreshTool.h"
#define customGifViewHeight 100
#define customImageSize CGSizeMake(50, 50)
@implementation YZMJRefreshTool
+ (YZRefreshGifHeader *)headerWithRefreshingBlock:(refreshingBlock)refreshingBlk {
YZRefreshGifHeader *header = [YZRefreshGifHeader headerWithRefreshingBlock:^{
if (refreshingBlk) {
refreshingBlk();
}
}];
return header;
}
+ (YZRefreshGifFooter *)footerWithRefreshingBlock:(refreshingBlock)refreshingBlk {
YZRefreshGifFooter *footer = [YZRefreshGifFooter footerWithRefreshingBlock:^{
if (refreshingBlk) {
refreshingBlk();
}
}];
return footer;
}
@end
@interface YZRefreshGifHeader()
@property (strong, nonatomic) UIImageView *smartGorImageView;
@end
@implementation YZRefreshGifHeader
- (UIImageView *)smartGorImageView {
if (!_smartGorImageView) {
_smartGorImageView = [[UIImageView alloc]init];
[self addSubview:_smartGorImageView];
}
return _smartGorImageView;
}
- (void)placeSubviews {
[super placeSubviews];
self.smartGorImageView.image = [UtilityClass getGifImage];
self.lastUpdatedTimeLabel.hidden = YES;
self.stateLabel.hidden = YES;
}
- (void)prepare {
[super prepare];
self.mj_h = customGifViewHeight;
[self.smartGorImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.equalTo(self);
make.size.mas_equalTo(customImageSize);
}];
}
@end
@interface YZRefreshGifFooter()
@property (strong, nonatomic) UIImageView *smartGorImageView;
@end
@implementation YZRefreshGifFooter
- (UIImageView *)smartGorImageView {
if (!_smartGorImageView) {
_smartGorImageView = [[UIImageView alloc]init];
[self addSubview:_smartGorImageView];
}
return _smartGorImageView;
}
- (void)placeSubviews {
[super placeSubviews];
self.smartGorImageView.image = [UtilityClass getGifImage];
self.stateLabel.hidden = YES;
}
- (void)prepare {
[super prepare];
self.mj_h = customGifViewHeight;
[self.smartGorImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.equalTo(self);
make.size.mas_equalTo(customImageSize);
}];
}
@end
网友评论