1
This commit is contained in:
17
CustomKeyboard/View/EmojiView/KBEmojiCollectionCell.h
Normal file
17
CustomKeyboard/View/EmojiView/KBEmojiCollectionCell.h
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
//
|
||||||
|
// KBEmojiCollectionCell.h
|
||||||
|
// CustomKeyboard
|
||||||
|
//
|
||||||
|
// Created by Mac on 2025/12/15.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface KBEmojiCollectionCell : UICollectionViewCell
|
||||||
|
@property (nonatomic, strong) UILabel *emojiLabel;
|
||||||
|
- (void)configureWithEmoji:(NSString *)emoji;
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
||||||
38
CustomKeyboard/View/EmojiView/KBEmojiCollectionCell.m
Normal file
38
CustomKeyboard/View/EmojiView/KBEmojiCollectionCell.m
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
//
|
||||||
|
// KBEmojiCollectionCell.m
|
||||||
|
// CustomKeyboard
|
||||||
|
//
|
||||||
|
// Created by Mac on 2025/12/15.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "KBEmojiCollectionCell.h"
|
||||||
|
|
||||||
|
@implementation KBEmojiCollectionCell
|
||||||
|
- (instancetype)initWithFrame:(CGRect)frame {
|
||||||
|
if (self = [super initWithFrame:frame]) {
|
||||||
|
_emojiLabel = [[UILabel alloc] init];
|
||||||
|
_emojiLabel.font = [UIFont systemFontOfSize:32];
|
||||||
|
_emojiLabel.textAlignment = NSTextAlignmentCenter;
|
||||||
|
_emojiLabel.translatesAutoresizingMaskIntoConstraints = NO;
|
||||||
|
[self.contentView addSubview:_emojiLabel];
|
||||||
|
[NSLayoutConstraint activateConstraints:@[
|
||||||
|
[_emojiLabel.topAnchor constraintEqualToAnchor:self.contentView.topAnchor],
|
||||||
|
[_emojiLabel.bottomAnchor constraintEqualToAnchor:self.contentView.bottomAnchor],
|
||||||
|
[_emojiLabel.leadingAnchor constraintEqualToAnchor:self.contentView.leadingAnchor],
|
||||||
|
[_emojiLabel.trailingAnchor constraintEqualToAnchor:self.contentView.trailingAnchor],
|
||||||
|
]];
|
||||||
|
self.contentView.layer.cornerRadius = 10;
|
||||||
|
self.contentView.layer.masksToBounds = YES;
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)prepareForReuse {
|
||||||
|
[super prepareForReuse];
|
||||||
|
self.emojiLabel.text = @"";
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)configureWithEmoji:(NSString *)emoji {
|
||||||
|
self.emojiLabel.text = emoji ?: @"";
|
||||||
|
}
|
||||||
|
@end
|
||||||
@@ -8,43 +8,8 @@
|
|||||||
#import "KBSkinManager.h"
|
#import "KBSkinManager.h"
|
||||||
#import "KBLocalizationManager.h"
|
#import "KBLocalizationManager.h"
|
||||||
#import "Masonry.h"
|
#import "Masonry.h"
|
||||||
|
#import "KBEmojiCollectionCell.h"
|
||||||
|
|
||||||
@interface KBEmojiCollectionCell : UICollectionViewCell
|
|
||||||
@property (nonatomic, strong) UILabel *emojiLabel;
|
|
||||||
- (void)configureWithEmoji:(NSString *)emoji;
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation KBEmojiCollectionCell
|
|
||||||
|
|
||||||
- (instancetype)initWithFrame:(CGRect)frame {
|
|
||||||
if (self = [super initWithFrame:frame]) {
|
|
||||||
_emojiLabel = [[UILabel alloc] init];
|
|
||||||
_emojiLabel.font = [UIFont systemFontOfSize:32];
|
|
||||||
_emojiLabel.textAlignment = NSTextAlignmentCenter;
|
|
||||||
_emojiLabel.translatesAutoresizingMaskIntoConstraints = NO;
|
|
||||||
[self.contentView addSubview:_emojiLabel];
|
|
||||||
[NSLayoutConstraint activateConstraints:@[
|
|
||||||
[_emojiLabel.topAnchor constraintEqualToAnchor:self.contentView.topAnchor],
|
|
||||||
[_emojiLabel.bottomAnchor constraintEqualToAnchor:self.contentView.bottomAnchor],
|
|
||||||
[_emojiLabel.leadingAnchor constraintEqualToAnchor:self.contentView.leadingAnchor],
|
|
||||||
[_emojiLabel.trailingAnchor constraintEqualToAnchor:self.contentView.trailingAnchor],
|
|
||||||
]];
|
|
||||||
self.contentView.layer.cornerRadius = 10;
|
|
||||||
self.contentView.layer.masksToBounds = YES;
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)prepareForReuse {
|
|
||||||
[super prepareForReuse];
|
|
||||||
self.emojiLabel.text = @"";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)configureWithEmoji:(NSString *)emoji {
|
|
||||||
self.emojiLabel.text = emoji ?: @"";
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface KBEmojiPanelView () <UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>
|
@interface KBEmojiPanelView () <UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>
|
||||||
|
|
||||||
@@ -29,6 +29,7 @@
|
|||||||
04286A0F2ECDA71B00CE730C /* 001.zip in Resources */ = {isa = PBXBuildFile; fileRef = 04286A0E2ECDA71B00CE730C /* 001.zip */; };
|
04286A0F2ECDA71B00CE730C /* 001.zip in Resources */ = {isa = PBXBuildFile; fileRef = 04286A0E2ECDA71B00CE730C /* 001.zip */; };
|
||||||
04286A132ECDEBF900CE730C /* KBSkinIconMap.strings in Resources */ = {isa = PBXBuildFile; fileRef = 04286A122ECDEBF900CE730C /* KBSkinIconMap.strings */; };
|
04286A132ECDEBF900CE730C /* KBSkinIconMap.strings in Resources */ = {isa = PBXBuildFile; fileRef = 04286A122ECDEBF900CE730C /* KBSkinIconMap.strings */; };
|
||||||
043FBCD22EAF97630036AFE1 /* KBPermissionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04C6EAE12EAF940F0089C901 /* KBPermissionViewController.m */; };
|
043FBCD22EAF97630036AFE1 /* KBPermissionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04C6EAE12EAF940F0089C901 /* KBPermissionViewController.m */; };
|
||||||
|
0450AA742EF013D000B6AF06 /* KBEmojiCollectionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0450AA732EF013D000B6AF06 /* KBEmojiCollectionCell.m */; };
|
||||||
0459D1B42EBA284C00F2D189 /* KBSkinCenterVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 0459D1B32EBA284C00F2D189 /* KBSkinCenterVC.m */; };
|
0459D1B42EBA284C00F2D189 /* KBSkinCenterVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 0459D1B32EBA284C00F2D189 /* KBSkinCenterVC.m */; };
|
||||||
0459D1B72EBA287900F2D189 /* KBSkinManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0459D1B62EBA287900F2D189 /* KBSkinManager.m */; };
|
0459D1B72EBA287900F2D189 /* KBSkinManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0459D1B62EBA287900F2D189 /* KBSkinManager.m */; };
|
||||||
0459D1B82EBA287900F2D189 /* KBSkinManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0459D1B62EBA287900F2D189 /* KBSkinManager.m */; };
|
0459D1B82EBA287900F2D189 /* KBSkinManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0459D1B62EBA287900F2D189 /* KBSkinManager.m */; };
|
||||||
@@ -262,6 +263,8 @@
|
|||||||
04286A0A2ECD88B400CE730C /* KeyboardAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = KeyboardAssets.xcassets; sourceTree = "<group>"; };
|
04286A0A2ECD88B400CE730C /* KeyboardAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = KeyboardAssets.xcassets; sourceTree = "<group>"; };
|
||||||
04286A0E2ECDA71B00CE730C /* 001.zip */ = {isa = PBXFileReference; lastKnownFileType = archive.zip; path = 001.zip; sourceTree = "<group>"; };
|
04286A0E2ECDA71B00CE730C /* 001.zip */ = {isa = PBXFileReference; lastKnownFileType = archive.zip; path = 001.zip; sourceTree = "<group>"; };
|
||||||
04286A122ECDEBF900CE730C /* KBSkinIconMap.strings */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; path = KBSkinIconMap.strings; sourceTree = "<group>"; };
|
04286A122ECDEBF900CE730C /* KBSkinIconMap.strings */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; path = KBSkinIconMap.strings; sourceTree = "<group>"; };
|
||||||
|
0450AA722EF013D000B6AF06 /* KBEmojiCollectionCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KBEmojiCollectionCell.h; sourceTree = "<group>"; };
|
||||||
|
0450AA732EF013D000B6AF06 /* KBEmojiCollectionCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KBEmojiCollectionCell.m; sourceTree = "<group>"; };
|
||||||
0459D1B22EBA284C00F2D189 /* KBSkinCenterVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KBSkinCenterVC.h; sourceTree = "<group>"; };
|
0459D1B22EBA284C00F2D189 /* KBSkinCenterVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KBSkinCenterVC.h; sourceTree = "<group>"; };
|
||||||
0459D1B32EBA284C00F2D189 /* KBSkinCenterVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KBSkinCenterVC.m; sourceTree = "<group>"; };
|
0459D1B32EBA284C00F2D189 /* KBSkinCenterVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KBSkinCenterVC.m; sourceTree = "<group>"; };
|
||||||
0459D1B52EBA287900F2D189 /* KBSkinManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KBSkinManager.h; sourceTree = "<group>"; };
|
0459D1B52EBA287900F2D189 /* KBSkinManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KBSkinManager.h; sourceTree = "<group>"; };
|
||||||
@@ -941,6 +944,10 @@
|
|||||||
0498BDF62EEFF585006CC1D5 /* EmojiView */ = {
|
0498BDF62EEFF585006CC1D5 /* EmojiView */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
04FEDAB12EEDB05000123456 /* KBEmojiPanelView.h */,
|
||||||
|
04FEDAB22EEDB05000123456 /* KBEmojiPanelView.m */,
|
||||||
|
0450AA722EF013D000B6AF06 /* KBEmojiCollectionCell.h */,
|
||||||
|
0450AA732EF013D000B6AF06 /* KBEmojiCollectionCell.m */,
|
||||||
);
|
);
|
||||||
path = EmojiView;
|
path = EmojiView;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1039,8 +1046,6 @@
|
|||||||
046131132ECF454500A6FADF /* KBKeyPreviewView.m */,
|
046131132ECF454500A6FADF /* KBKeyPreviewView.m */,
|
||||||
04FC95772EB09BC8007BD342 /* KBKeyBoardMainView.h */,
|
04FC95772EB09BC8007BD342 /* KBKeyBoardMainView.h */,
|
||||||
04FC95782EB09BC8007BD342 /* KBKeyBoardMainView.m */,
|
04FC95782EB09BC8007BD342 /* KBKeyBoardMainView.m */,
|
||||||
04FEDAB12EEDB05000123456 /* KBEmojiPanelView.h */,
|
|
||||||
04FEDAB22EEDB05000123456 /* KBEmojiPanelView.m */,
|
|
||||||
04FC956E2EB09516007BD342 /* KBFunctionView.h */,
|
04FC956E2EB09516007BD342 /* KBFunctionView.h */,
|
||||||
04FC956F2EB09516007BD342 /* KBFunctionView.m */,
|
04FC956F2EB09516007BD342 /* KBFunctionView.m */,
|
||||||
04FC95712EB09570007BD342 /* KBFunctionBarView.h */,
|
04FC95712EB09570007BD342 /* KBFunctionBarView.h */,
|
||||||
@@ -1760,6 +1765,7 @@
|
|||||||
04FC95672EB0546C007BD342 /* KBKey.m in Sources */,
|
04FC95672EB0546C007BD342 /* KBKey.m in Sources */,
|
||||||
A1B2C3F42EB35A9900000001 /* KBFullAccessGuideView.m in Sources */,
|
A1B2C3F42EB35A9900000001 /* KBFullAccessGuideView.m in Sources */,
|
||||||
0498BD8F2EE6A3BD006CC1D5 /* KBMyMainModel.m in Sources */,
|
0498BD8F2EE6A3BD006CC1D5 /* KBMyMainModel.m in Sources */,
|
||||||
|
0450AA742EF013D000B6AF06 /* KBEmojiCollectionCell.m in Sources */,
|
||||||
550CB2630FA4A7B4B9782EFA /* KBMyTheme.m in Sources */,
|
550CB2630FA4A7B4B9782EFA /* KBMyTheme.m in Sources */,
|
||||||
0498BDDA2EE7ECEA006CC1D5 /* WJXEventSource.m in Sources */,
|
0498BDDA2EE7ECEA006CC1D5 /* WJXEventSource.m in Sources */,
|
||||||
04D1F6B22EDFF10A00B12345 /* KBSkinInstallBridge.m in Sources */,
|
04D1F6B22EDFF10A00B12345 /* KBSkinInstallBridge.m in Sources */,
|
||||||
|
|||||||
Reference in New Issue
Block a user