iOS 取消按钮高亮显示方法

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
        }
    }
原文地址:https://www.cnblogs.com/MrTao/p/5361472.html