objective-C
第1种方法: 设置按钮的normal 与 highlighted 一样的图片, 不过如果你也需要selected状态下的图片, 就不能这么做, 这样做在取消选中状态的时候就会显示高亮状态, 所以这样不推荐
[button setImage:[UIImage imageNamed:@"add"] forState:UIControlStateNormal]; [button setImage:[UIImage imageNamed:@"add"] forState:UIControlStateHighlighted];
第2种方法, 不过这种也有一个问题, 就是如果第一次按住你会发现他不改变, 当第2次点击并且按住他马上就会变回normal状态, 所以这样也不推荐
[button setImage:[UIImage imageNamed:@"add"] forState:UIControlStateNormal]; [button setImage:[UIImage imageNamed:@"add_disabled"] forState:UIControlStateSelected]; button.showsTouchWhenHighlighted = YES;
第3种方法, 也是推荐的, 自定义按钮, 重写- (void)setHighlighted:(BOOL)highlighted方法
- (void)setHighlighted:(BOOL)highlighted { }
Swift
第1.2种方法跟一样, 不推荐
第3种, 推荐与 objecive-c 思想是一样的
override var highlighted: Bool { set{ } get { return false } }
时间: 2024-10-13 18:20:20