TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | MIT |
ReleasedLast Release | Feb 2016 |
Maintained by itheima.
轻量级的上拉/下拉刷新控件
UIRefreshControl
完全一致的接口调用方式,上手容易UITableView
和 UICollectionView
的上/下拉刷新,不占用 HeaderView
和 FooterView
@import HMRefresh;
- (void)viewDidLoad {
[super viewDidLoad];
// 添加刷新控件
HMRefreshControl *refreshControl = [[HMRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(loadData:) forControlEvents:UIControlEventValueChanged];
[self.tableView addSubview:refreshControl];
[self loadData:refreshControl];
}
- (void)loadData:(HMRefreshControl *)refreshControl {
// 开始刷新
[refreshControl beginRefreshing];
[self.dataModal loadData:refreshControl.isPullupRefresh completion:^{
// 结束刷新
[refreshControl endRefreshing];
// 刷新数据
[self.tableView reloadData];
}];
}
@interface DemoRefreshView : UIView <HMRefreshViewDelegate>
@end
/// 刷新指示器
@property (nonatomic, weak) IBOutlet UIActivityIndicatorView *refreshIndicator;
/// 下拉提示图像
@property (nonatomic, weak) IBOutlet UIImageView *pulldownIcon;
/// 提示标签
@property (nonatomic, weak) IBOutlet UILabel *tipLabel;
/// 刷新时间标签
@property (nonatomic, weak) IBOutlet UILabel *timeLabel;
提示:如果不需要可以不连线,不过属性仍然需要保留
import HMRefresh
override func viewDidLoad() {
super.viewDidLoad()
let refreshControl = HMRefreshControl()
self.tableView.addSubview(refreshControl)
refreshControl.addTarget(self, action: "loadData:", forControlEvents: .ValueChanged)
}
@objc private func loadData(refreshControl: HMRefreshControl) {
refreshControl.beginRefreshing()
dataModel.loadData(refreshControl.isPullupRefresh) {
refreshControl.endRefreshing()
self.tableView.reloadData();
}
}