添加按钮文字预览提示

This commit is contained in:
2025-11-20 21:11:27 +08:00
parent 6bdd111a3a
commit faa05e2a10
6 changed files with 168 additions and 3 deletions

View File

@@ -8,7 +8,8 @@
#import "KBSkinManager.h"
@interface KBKeyButton ()
@property (nonatomic, strong) UIImageView *iconView;
// 便 KBKeyboardView
@property (nonatomic, weak, readonly) UIView *kb_keyboardContainer;
@end
@implementation KBKeyButton
@@ -63,10 +64,8 @@
- (void)setHighlighted:(BOOL)highlighted {
[super setHighlighted:highlighted];
//
//
NSLog(@"来了老弟=====");
CGFloat scale = highlighted ? 0.9 : 1.0; // 0.9~0.95
[UIView animateWithDuration:0.08
delay:0
@@ -75,6 +74,23 @@
self.transform = CGAffineTransformMakeScale(scale, scale);
}
completion:nil];
// //
UIView *container = self.kb_keyboardContainer;
if ([container respondsToSelector:@selector(showPreviewForButton:)] &&
[container respondsToSelector:@selector(hidePreview)]) {
if (highlighted) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[container performSelector:@selector(showPreviewForButton:) withObject:self];
#pragma clang diagnostic pop
} else {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[container performSelector:@selector(hidePreview)];
#pragma clang diagnostic pop
}
}
}
- (void)setSelected:(BOOL)selected {
@@ -124,3 +140,19 @@
}
@end
@implementation KBKeyButton (KBKeyboardContainer)
- (UIView *)kb_keyboardContainer {
UIView *v = self.superview;
while (v) {
// KBKeyboardView
if ([NSStringFromClass(v.class) isEqualToString:@"KBKeyboardView"]) {
return v;
}
v = v.superview;
}
return nil;
}
@end