以编程方式禁用单击UIButton上的突出显示

必须有办法做到这一点,但我找不到它。 我有一个button,我已经编程创build:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(25, self.view.frame.size.height/4, 200, 350); [button setTitle:@"Inbox" forState:UIControlStateNormal]; [button addTarget:self action:@selector(popViewController:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; 

我只想让button在触摸时不突出或改变外观。 到目前为止,我已经在创buildbutton时尝试以下操作:

 [button setBackgroundImage:[UIImage imageNamed:nil] forState:UIControlStateSelected | UIControlStateHighlighted]; 

 [button setBackgroundImage:nil forState:UIControlStateSelected]; 

 [button setAdjustsImageWhenHighlighted:NO]; 

 button.showsTouchWhenHighlighted = NO; 

然后在button操作中我尝试了一下:

 [sender setHighlighted:!sender.isHighlighted]; 

 [sender setSelected:!sender.isSelected]; 

这些都没有工作。

使您的UIButton一个自定义button,然后应用UIImage背景。 按下时不会突出显示或更改

 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 

你可以简单地将adjustImageWhenHighlighted设置为No.

 button.adjustsImageWhenHighlighted = NO; 

兄弟,我已经尝试了不同的方式。 但终于find了我自己的配方:

我不知道它是如何工作与UIImage的自定义button,但对于一个简单的UIButton与高亮显示的状态的文本您应该简单地设置相同的设置,因为你在默认状态。

对于IB中图像属性的高亮显示状态,设置一个空格。 您可能会发现,有时button可能会有一个奇怪的小偏移,当你点击它。 在这种情况下,从textField中删除突出显示状态的文本。 这将解决这个问题。

在这里输入图像说明

然后在你的点击事件中,你将看不到任何眨眼。

对于那些使用自定义PNG图像打开色调颜色,您可以避免使用此代码的调光(例如从白色到灰色):

  clearButton.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;