New file |
| | |
| | | // |
| | | // MJRefreshBackStateFooter.m |
| | | // MJRefreshExample |
| | | // |
| | | // Created by MJ Lee on 15/6/13. |
| | | // Copyright © 2015年 小码哥. All rights reserved. |
| | | // |
| | | |
| | | #import "MJRefreshBackStateFooter.h" |
| | | |
| | | @interface MJRefreshBackStateFooter() |
| | | { |
| | | /** 显示刷新状态的label */ |
| | | __unsafe_unretained UILabel *_stateLabel; |
| | | } |
| | | /** 所有状态对应的文字 */ |
| | | @property (strong, nonatomic) NSMutableDictionary *stateTitles; |
| | | @end |
| | | |
| | | @implementation MJRefreshBackStateFooter |
| | | #pragma mark - 懒加载 |
| | | - (NSMutableDictionary *)stateTitles |
| | | { |
| | | if (!_stateTitles) { |
| | | self.stateTitles = [NSMutableDictionary dictionary]; |
| | | } |
| | | return _stateTitles; |
| | | } |
| | | |
| | | - (UILabel *)stateLabel |
| | | { |
| | | if (!_stateLabel) { |
| | | [self addSubview:_stateLabel = [UILabel mj_label]]; |
| | | } |
| | | return _stateLabel; |
| | | } |
| | | |
| | | #pragma mark - 公共方法 |
| | | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state |
| | | { |
| | | if (title == nil) return; |
| | | self.stateTitles[@(state)] = title; |
| | | self.stateLabel.text = self.stateTitles[@(self.state)]; |
| | | } |
| | | |
| | | - (NSString *)titleForState:(MJRefreshState)state { |
| | | return self.stateTitles[@(state)]; |
| | | } |
| | | |
| | | #pragma mark - 重写父类的方法 |
| | | - (void)prepare |
| | | { |
| | | [super prepare]; |
| | | |
| | | // 初始化间距 |
| | | self.labelLeftInset = MJRefreshLabelLeftInset; |
| | | |
| | | // 初始化文字 |
| | | [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshBackFooterIdleText] forState:MJRefreshStateIdle]; |
| | | [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshBackFooterPullingText] forState:MJRefreshStatePulling]; |
| | | [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshBackFooterRefreshingText] forState:MJRefreshStateRefreshing]; |
| | | [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshBackFooterNoMoreDataText] forState:MJRefreshStateNoMoreData]; |
| | | } |
| | | |
| | | - (void)placeSubviews |
| | | { |
| | | [super placeSubviews]; |
| | | |
| | | if (self.stateLabel.constraints.count) return; |
| | | |
| | | // 状态标签 |
| | | self.stateLabel.frame = self.bounds; |
| | | } |
| | | |
| | | - (void)setState:(MJRefreshState)state |
| | | { |
| | | MJRefreshCheckState |
| | | |
| | | // 设置状态文字 |
| | | self.stateLabel.text = self.stateTitles[@(state)]; |
| | | } |
| | | @end |