修改首页pop对钩问题

This commit is contained in:
2026-01-07 15:45:01 +08:00
parent f2d5210313
commit e858d35722
3 changed files with 91 additions and 5 deletions

View File

@@ -59,6 +59,7 @@
self.downloadLabel.text = character.download ?: @""; self.downloadLabel.text = character.download ?: @"";
self.descLabel.text = character.characterBackground ?: @""; self.descLabel.text = character.characterBackground ?: @"";
[self.avatarView kb_setImageURL:character.avatarUrl placeholder:KBAvatarPlaceholderImage]; [self.avatarView kb_setImageURL:character.avatarUrl placeholder:KBAvatarPlaceholderImage];
[self kb_updateSaveButtonWithAdded:character.added];
} }
#pragma mark - Build UI #pragma mark - Build UI
@@ -138,6 +139,24 @@
if (self.closeHandler) self.closeHandler(); if (self.closeHandler) self.closeHandler();
} }
#pragma mark - UI State
- (void)kb_updateSaveButtonWithAdded:(BOOL)added {
if (added) {
self.saveButton.enabled = NO;
self.saveButton.backgroundColor = [UIColor colorWithWhite:0.93 alpha:1.0];
[self.saveButton setTitle:@"✓" forState:UIControlStateNormal];
[self.saveButton setTitle:@"✓" forState:UIControlStateDisabled];
[self.saveButton setTitleColor:[UIColor colorWithWhite:0.55 alpha:1.0] forState:UIControlStateNormal];
[self.saveButton setTitleColor:[UIColor colorWithWhite:0.55 alpha:1.0] forState:UIControlStateDisabled];
} else {
self.saveButton.enabled = YES;
self.saveButton.backgroundColor = [UIColor colorWithRed:0.02 green:0.75 blue:0.67 alpha:1.0];
[self.saveButton setTitle:@"Save" forState:UIControlStateNormal];
[self.saveButton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal];
}
}
#pragma mark - Helpers #pragma mark - Helpers
- (UIImage *)placeholderAvatar { - (UIImage *)placeholderAvatar {
@@ -246,4 +265,3 @@
} }
@end @end

View File

@@ -284,9 +284,44 @@
pop.isClickBgDismiss = YES; // pop.isClickBgDismiss = YES; //
pop.cornerRadius = 0; // view pop.cornerRadius = 0; // view
KBWeakSelf
__weak typeof(pop) weakPop = pop; __weak typeof(pop) weakPop = pop;
content.saveHandler = ^{ [weakPop dismiss]; }; content.saveHandler = ^{
content.closeHandler = ^{ [weakPop dismiss]; }; [weakPop dismiss];
if (![KBUserSessionManager shared].isLoggedIn) {
[[KBUserSessionManager shared] goLoginVC];
return;
}
__strong typeof(weakSelf) self = weakSelf;
if (!self) { return; }
if (indexPath.row >= self.listCharacters.count) { return; }
KBCharacter *mc = self.listCharacters[indexPath.row];
if (mc.added) { return; }
NSString *cidStr = mc.ID ?: @"";
if (cidStr.length == 0) { return; }
NSNumber *cid = @([cidStr integerValue]);
NSString *emoji = mc.emoji ? mc.emoji : @"";
[self.homeVM addUserCharacterWithId:cid emoji : emoji
completion:^(BOOL success, NSError * _Nullable error) {
if (success) {
mc.added = YES;
NSMutableArray *m = [self.listCharacters mutableCopy];
[m replaceObjectAtIndex:indexPath.row withObject:mc];
self.listCharacters = [m copy];
[self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
[self kb_refreshTopThreeView];
}
}];
};
content.closeHandler = ^{
[weakPop dismiss];
};
[pop pop]; [pop pop];

View File

@@ -210,9 +210,42 @@
pop.isClickBgDismiss = YES; // pop.isClickBgDismiss = YES; //
pop.cornerRadius = 0; // view pop.cornerRadius = 0; // view
KBWeakSelf
__weak typeof(pop) weakPop = pop; __weak typeof(pop) weakPop = pop;
content.saveHandler = ^{ [weakPop dismiss]; }; content.saveHandler = ^{
content.closeHandler = ^{ [weakPop dismiss]; }; [weakPop dismiss];
if (![KBUserSessionManager shared].isLoggedIn) {
[[KBUserSessionManager shared] goLoginVC];
return;
}
__strong typeof(weakSelf) self = weakSelf;
if (!self) { return; }
if (indexPath.item >= self.characters.count) { return; }
KBCharacter *mc = self.characters[indexPath.item];
if (mc.added) { return; }
NSString *cidStr = mc.ID ?: @"";
if (cidStr.length == 0) { return; }
NSNumber *cid = @([cidStr integerValue]);
NSString *emoji = mc.emoji ? mc.emoji : @"";
[self.homeVM addUserCharacterWithId:cid emoji : emoji
completion:^(BOOL success, NSError * _Nullable error) {
if (success) {
mc.added = YES;
NSMutableArray *m = [self.characters mutableCopy];
[m replaceObjectAtIndex:indexPath.item withObject:mc];
self.characters = [m copy];
[self.collectionView reloadItemsAtIndexPaths:@[indexPath]];
}
}];
};
content.closeHandler = ^{
[weakPop dismiss];
};
[pop pop]; [pop pop];
} }