139 lines
4.5 KiB
Objective-C
139 lines
4.5 KiB
Objective-C
//
|
|
// QXUserDynamicView.m
|
|
// QXLive
|
|
//
|
|
// Created by 启星 on 2025/5/21.
|
|
//
|
|
|
|
#import "QXUserDynamicView.h"
|
|
#import "QXDynamicListCell.h"
|
|
#import "QXMineNetwork.h"
|
|
#import "QXDynamicDetailViewController.h"
|
|
|
|
@interface QXUserDynamicView() <UITableViewDataSource, UITableViewDelegate>
|
|
@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView);
|
|
@property (nonatomic, assign) NSInteger page;
|
|
@property (nonatomic, strong) NSMutableArray* dataArray;
|
|
@end
|
|
@implementation QXUserDynamicView
|
|
- (instancetype)initWithFrame:(CGRect)frame
|
|
{
|
|
self = [super initWithFrame:frame];
|
|
if (self) {
|
|
self.page = 1;
|
|
_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) style:UITableViewStylePlain];
|
|
self.tableView.backgroundColor = [UIColor clearColor];
|
|
self.tableView.tableFooterView = [UIView new];
|
|
self.tableView.dataSource = self;
|
|
self.tableView.delegate = self;
|
|
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
|
[self.tableView registerNib:[UINib nibWithNibName:@"QXDynamicListCell" bundle:nil] forCellReuseIdentifier:@"QXDynamicListCell"];
|
|
self.tableView.rowHeight = UITableViewAutomaticDimension;
|
|
// self.tableView.estimatedRowHeight = 152;
|
|
[self addSubview:self.tableView];
|
|
MJWeakSelf
|
|
_tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
|
|
weakSelf.page = 1;
|
|
[weakSelf getList];
|
|
}];
|
|
_tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
|
|
weakSelf.page++;
|
|
[weakSelf getList];
|
|
}];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (instancetype)initWithOffsetY:(CGFloat)offsety {
|
|
self = [self initWithFrame:CGRectZero];
|
|
self.tableView.contentOffset = CGPointMake(0, offsety);
|
|
return self;
|
|
}
|
|
|
|
-(void)setUser_id:(NSString *)user_id{
|
|
_user_id = user_id;
|
|
[self getList];
|
|
}
|
|
-(void)getList{
|
|
MJWeakSelf
|
|
[QXMineNetwork userDynamicWithUserId:self.user_id
|
|
page:self.page successBlock:^(NSArray<QXDynamicModel *> * _Nonnull hotos) {
|
|
if (weakSelf.page == 1) {
|
|
[weakSelf.dataArray removeAllObjects];
|
|
}
|
|
[weakSelf.dataArray addObjectsFromArray:hotos];
|
|
[weakSelf.tableView.mj_header endRefreshing];
|
|
if (hotos.count == 0) {
|
|
weakSelf.tableView.mj_footer.state = MJRefreshStateNoMoreData;
|
|
}else{
|
|
[weakSelf.tableView.mj_footer endRefreshing];
|
|
}
|
|
[weakSelf.tableView reloadData];
|
|
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
|
|
[weakSelf.tableView.mj_header endRefreshing];
|
|
[weakSelf.tableView.mj_footer endRefreshing];
|
|
}];
|
|
}
|
|
- (void)layoutSubviews {
|
|
[super layoutSubviews];
|
|
|
|
self.tableView.frame = self.bounds;
|
|
}
|
|
|
|
#pragma mark - UITableViewDataSource, UITableViewDelegate
|
|
|
|
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
|
return self.dataArray.count;
|
|
}
|
|
|
|
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
QXDynamicListCell *cell = [tableView dequeueReusableCellWithIdentifier:@"QXDynamicListCell" forIndexPath:indexPath];
|
|
cell.selectionStyle = NO;
|
|
cell.cellType = QXDynamicListCellHomePage;
|
|
cell.model = self.dataArray[indexPath.row];
|
|
// cell.imgs = @[@"user_header_placehoulder",@"user_header_placehoulder"];
|
|
// SPTrendListModel *model = self.dataArray[indexPath.row];
|
|
// cell.model = model;
|
|
// WEAK_SELF
|
|
// cell.onDeleteBlock = ^{
|
|
// [weakSelf onDeleteWith:indexPath.row];
|
|
// };
|
|
|
|
return cell;
|
|
}
|
|
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
|
|
QXDynamicDetailViewController *vc = [[QXDynamicDetailViewController alloc] init];
|
|
vc.model = self.dataArray[indexPath.row];
|
|
[self.navigationController pushViewController:vc animated:YES];
|
|
}
|
|
|
|
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
|
|
if (self.scrollCallback != nil) {
|
|
self.scrollCallback(scrollView);
|
|
}
|
|
if (self.listScrollCallback != nil) {
|
|
self.listScrollCallback(scrollView);
|
|
}
|
|
}
|
|
#pragma mark - JXPagingViewListViewDelegate
|
|
|
|
- (UIScrollView *)listScrollView {
|
|
return self.tableView;
|
|
}
|
|
|
|
- (void)listViewDidScrollCallback:(void (^)(UIScrollView *))callback {
|
|
self.scrollCallback = callback;
|
|
}
|
|
|
|
- (UIView *)listView {
|
|
return self;
|
|
}
|
|
-(NSMutableArray *)dataArray{
|
|
if (!_dataArray) {
|
|
_dataArray = [NSMutableArray array];
|
|
}
|
|
return _dataArray;
|
|
}
|
|
|
|
@end
|