4
This commit is contained in:
@@ -14,4 +14,7 @@
|
|||||||
/// 配置基础样式(背景、圆角等)。创建按钮时调用。
|
/// 配置基础样式(背景、圆角等)。创建按钮时调用。
|
||||||
- (void)applyDefaultStyle;
|
- (void)applyDefaultStyle;
|
||||||
|
|
||||||
|
/// 根据选中/高亮等状态刷新外观
|
||||||
|
- (void)refreshStateAppearance;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -26,11 +26,31 @@
|
|||||||
self.layer.shadowOpacity = 1.0;
|
self.layer.shadowOpacity = 1.0;
|
||||||
self.layer.shadowOffset = CGSizeMake(0, 1);
|
self.layer.shadowOffset = CGSizeMake(0, 1);
|
||||||
self.layer.shadowRadius = 1.5;
|
self.layer.shadowRadius = 1.5;
|
||||||
|
[self refreshStateAppearance];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setHighlighted:(BOOL)highlighted {
|
- (void)setHighlighted:(BOOL)highlighted {
|
||||||
[super setHighlighted:highlighted];
|
[super setHighlighted:highlighted];
|
||||||
self.alpha = highlighted ? 0.7 : 1.0; // 简单按压反馈
|
// 简单按压反馈:选中态不改变透明度,避免和高亮态冲突
|
||||||
|
if (self.isSelected) {
|
||||||
|
self.alpha = 1.0;
|
||||||
|
} else {
|
||||||
|
self.alpha = highlighted ? 0.7 : 1.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setSelected:(BOOL)selected {
|
||||||
|
[super setSelected:selected];
|
||||||
|
[self refreshStateAppearance];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)refreshStateAppearance {
|
||||||
|
// 选中态用于 Shift/CapsLock 等特殊按键的高亮显示
|
||||||
|
if (self.isSelected) {
|
||||||
|
self.backgroundColor = [UIColor colorWithWhite:0.85 alpha:1.0];
|
||||||
|
} else {
|
||||||
|
self.backgroundColor = [UIColor whiteColor];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -198,6 +198,11 @@
|
|||||||
[btn addTarget:self action:@selector(onKeyTapped:) forControlEvents:UIControlEventTouchUpInside];
|
[btn addTarget:self action:@selector(onKeyTapped:) forControlEvents:UIControlEventTouchUpInside];
|
||||||
[row addSubview:btn];
|
[row addSubview:btn];
|
||||||
|
|
||||||
|
// Shift 按钮选中态随大小写状态变化
|
||||||
|
if (key.type == KBKeyTypeShift) {
|
||||||
|
btn.selected = self.shiftOn;
|
||||||
|
}
|
||||||
|
|
||||||
[btn mas_makeConstraints:^(MASConstraintMaker *make) {
|
[btn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.top.bottom.equalTo(row);
|
make.top.bottom.equalTo(row);
|
||||||
if (previous) {
|
if (previous) {
|
||||||
|
|||||||
Reference in New Issue
Block a user