以编程方式禁用UIButton单击中的突出显示
必须有办法做到这一点,但我找不到它。我有我已编程方式创建一个按钮:以编程方式禁用UIButton单击中的突出显示
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 setBackgroundImage:[UIImage imageNamed:nil] forState:UIControlStateSelected | UIControlStateHighlighted];
和
[button setBackgroundImage:nil forState:UIControlStateSelected];
和
[button setAdjustsImageWhenHighlighted:NO];
和
button.showsTouchWhenHighlighted = NO;
然后在按钮的动作我试着:
[sender setHighlighted:!sender.isHighlighted];
和
[sender setSelected:!sender.isSelected];
这些都不工作。
使您的UIButton成为一个自定义按钮,然后为其应用UIImage背景。它不会突出或更改按下
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
很好的回答! – Asmita
兄弟,我已经尝试了不同的方式为你。 但最后发现我自己的食谱:
我不知道它是怎么用的UIImage自定义按钮的工作就可以了 但对于一个简单的UIButton与文本的heighlighted状态,您应该简单地将相同的设置你已经处于默认状态。
而对于突出显示状态为IB的图像属性设置一个空格。 您可能会发现,有时按钮在点击时可能有一个奇怪的小偏移量。对于这种情况,请从textField中删除突出显示状态的文本。它将解决这个问题。
然后在点击事件,你会看到没有闪烁的。
这是一个骇人听闻的解决方案。 –
这是一个黑客解决方案,它可以快速处理Xcode 6.2 beta 5。没有什么不正常的“正常”工作。你刚刚救了我的白天和黑夜。 Gj –
设置与“默认”状态相同的图像,为我工作。 – Resty
对于使用与着色颜色自定义的PNG图像的打开,你能避免使用此代码调光(例如,从白到灰):
clearButton.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;
你看着showsTouchWhenHighlighted? – KHansenSF
谢谢,刚试过,也不管用!我只是将它添加到我尝试过的事物列表中。 – jac300
'[button setBackgroundImage:[UIImage new] forState:UIControlStateSelected];''或'adjustsImageWhenHighlighted'如何? – danypata