JLChen
2021-05-18 a869383e163a18cdedcf587383c1eca043129754
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
//
//  Copyright © 2015 dahua. All rights reserved.
//
 
#import "LCRefreshFooter.h"
#import <LCBaseModule/DHActivityIndicatorView.h>
 
@interface LCRefreshFooter ()
 
{
    DHActivityIndicatorView *actionView;
}
 
@end
 
@implementation LCRefreshFooter
 
#pragma makr - 重写父类的方法
 
- (void)prepare
{
    [super prepare];
    
    self.pullString = @"mobile_common_release_to_load".lc_T;
    self.noMoreDataString = @"footer_no_more_data".lc_T;
    self.refreshString = @"footer_refresh".lc_T;
    
    actionView = [[DHActivityIndicatorView alloc]init];
    actionView.frame = CGRectMake((SCREEN_WIDTH / 2 - 100), (self.frame.size.height - 22) / 2, 22, 22);
    [self addSubview:actionView];
    [self setTitle:self.pullString forState:MJRefreshStateIdle];
    [self setTitle:self.pullString forState:MJRefreshStatePulling];
    [self setTitle:self.refreshString forState:MJRefreshStateRefreshing];
    [self setTitle:self.noMoreDataString forState:MJRefreshStateNoMoreData];
}
 
- (void)placeSubviews
{
    [super placeSubviews];
    actionView.frame = CGRectMake((SCREEN_WIDTH / 2 - 100), (self.frame.size.height - 22) / 2, 22, 22);
}
 
#pragma mark 监听scrollView的contentOffset改变
- (void)scrollViewContentOffsetDidChange:(NSDictionary *)change
{
    [super scrollViewContentOffsetDidChange:change];
    CGFloat angle = M_PI * self.scrollView.contentOffset.y / MJRefreshFooterHeight ;
    actionView.rotationView.transform = CGAffineTransformMakeRotation(angle);
    actionView.backgroundView.transform = CGAffineTransformMakeRotation(-angle);
}
 
#pragma mark 监听scrollView的contentSize改变
- (void)scrollViewContentSizeDidChange:(NSDictionary *)change
{
    [super scrollViewContentSizeDidChange:change];
}
 
#pragma mark 监听scrollView的拖拽状态改变
- (void)scrollViewPanStateDidChange:(NSDictionary *)change
{
    [super scrollViewPanStateDidChange:change];
}
 
#pragma mark 监听控件的加载状态
- (void)setState:(MJRefreshState)state
{
    MJRefreshCheckState;
 
    switch (state) {
        case MJRefreshStateIdle:
            [actionView stopAnimating];
            break;
        case MJRefreshStatePulling:
            break;
        case MJRefreshStateNoMoreData:
            break;
        case MJRefreshStateRefreshing:
            [actionView startAnimating];
            break;
        default:
            break;
            
    }
    
}
 
#pragma mark 监听拖拽比例(控件被拖出来的比例)
- (void)setPullingPercent:(CGFloat)pullingPercent
{
    [super setPullingPercent:pullingPercent];
}
 
@end