This commit is contained in:
2025-11-09 21:05:03 +08:00
parent aa71cc3c4f
commit 2415e97c97
6 changed files with 90 additions and 2 deletions

View File

@@ -7,6 +7,7 @@
#import "HomeRankVC.h"
#import "HomeRankContentVC.h"
#import "KBCategoryTitleImageView.h"
@interface HomeRankVC ()<JXCategoryViewDelegate>
@property (nonatomic, strong) NSArray *titles;
@@ -114,9 +115,10 @@
//
- (JXCategoryTitleImageView *)myCategoryView {
if (!_myCategoryView) {
_myCategoryView = [[JXCategoryTitleImageView alloc] init];
// Use our subclass so cells get a 4pt rounded background locally
_myCategoryView = (JXCategoryTitleImageView *)[[KBCategoryTitleImageView alloc] init];
_myCategoryView.delegate = self;
// !!!: categoryView
_myCategoryView.listContainer = self.listContainerView;
}

View File

@@ -0,0 +1,14 @@
//
// KBCategoryTitleImageCell.h
// keyBoard
//
// A JXCategoryTitleImageCell subclass that rounds the cell's contentView
// without changing the third-party JXCategoryView source code.
//
#import <JXCategoryView/JXCategoryTitleImageCell.h>
@interface KBCategoryTitleImageCell : JXCategoryTitleImageCell
@end

View File

@@ -0,0 +1,28 @@
//
// KBCategoryTitleImageCell.m
// keyBoard
//
// Sets `contentView.layer.cornerRadius = 4` for title+image cells, so the
// background color that JXCategoryView applies is shown as a rounded rect.
//
#import "KBCategoryTitleImageCell.h"
@implementation KBCategoryTitleImageCell
- (void)initializeViews {
[super initializeViews];
// Round the cell background once; keep clipping within the rounded rect.
self.contentView.layer.cornerRadius = 4.0;
self.contentView.layer.masksToBounds = YES;
}
// Defensive: if layout changes reset layer (some frameworks tweak layers in layout)
- (void)layoutSubviews {
[super layoutSubviews];
self.contentView.layer.cornerRadius = 4.0;
self.contentView.layer.masksToBounds = YES;
}
@end

View File

@@ -0,0 +1,14 @@
//
// KBCategoryTitleImageView.h
// keyBoard
//
// Registers KBCategoryTitleImageCell so we can round cells locally
// without touching the JXCategoryView pod.
//
#import <JXCategoryView/JXCategoryTitleImageView.h>
@interface KBCategoryTitleImageView : JXCategoryTitleImageView
@end

View File

@@ -0,0 +1,18 @@
//
// KBCategoryTitleImageView.m
// keyBoard
//
// Use our rounded KBCategoryTitleImageCell for this view instance.
//
#import "KBCategoryTitleImageView.h"
#import "KBCategoryTitleImageCell.h"
@implementation KBCategoryTitleImageView
- (Class)preferredCellClass {
return [KBCategoryTitleImageCell class];
}
@end