更新 MedalsRankViewController.m,添加勋章排行视图的点击手势和回调处理,优化用户交互体验,保持代码结构一致性。

This commit is contained in:
edwinQQQ
2025-06-23 19:09:45 +08:00
parent 6d0122f3d1
commit a15d6b34ed

View File

@@ -53,6 +53,8 @@
self.backgroundColor = [UIColor clearColor];
self.contentView.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.indexLabel = [UILabel labelInitWithText:@"" font:kFontMedium(14) textColor:[UIColor whiteColor]];
[self.contentView addSubview:self.indexLabel];
[self.indexLabel mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -119,6 +121,7 @@
@property (nonatomic, assign) NSInteger topLevel;
@property (nonatomic, strong) MedalsRankUserModel *userModel;
@property (nonatomic, copy) void (^onTapBlock)(MedalsRankUserModel *userModel);
@end
@@ -182,10 +185,21 @@
honorLabel.hidden = YES;
honorImageView.hidden = YES;
//
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapTopView)];
[self addGestureRecognizer:tapGesture];
self.userInteractionEnabled = YES;
}
return self;
}
- (void)didTapTopView {
if (self.onTapBlock && self.userModel) {
self.onTapBlock(self.userModel);
}
}
- (void)setTopLevel:(NSInteger)topLevel {
_topLevel = topLevel;
NSString *imagePath = @"";
@@ -298,6 +312,18 @@
self.topTwo = [self rankTopView:2];
self.topThree = [self rankTopView:3];
//
__weak typeof(self) weakSelf = self;
self.topOne.onTapBlock = ^(MedalsRankUserModel *userModel) {
[weakSelf handleTopViewTap:userModel];
};
self.topTwo.onTapBlock = ^(MedalsRankUserModel *userModel) {
[weakSelf handleTopViewTap:userModel];
};
self.topThree.onTapBlock = ^(MedalsRankUserModel *userModel) {
[weakSelf handleTopViewTap:userModel];
};
[self.view addSubview:self.topOne];
[self.view addSubview:self.topTwo];
[self.view addSubview:self.topThree];
@@ -436,7 +462,14 @@
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//
[tableView deselectRowAtIndexPath:indexPath animated:YES];
MedalsRankUserModel *model = [self.rankList xpSafeObjectAtIndex:indexPath.row];
[self handleTopViewTap:model];
}
- (void)handleTopViewTap:(MedalsRankUserModel *)model {
if (model) {
UserInfoModel *userInfo = [[UserInfoModel alloc] init];
userInfo.uid = model.uid;