Files
featherVoice/QXLive/Mine(音域)/View/个人主页/QXUserDynamicView.m
2025-08-08 10:49:36 +08:00

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