必须有办法做到这一点,但我找不到它。我有一个按编程方式创建的按钮:
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];
AND
[button setAdjustsImageWhenHighlighted:NO];
和
button.showsTouchWhenHighlighted = NO;
然后在我尝试的按钮操作中:
[sender setHighlighted:!sender.isHighlighted];
和
[sender setSelected:!sender.isSelected];
这些都不起作用。
答案 0 :(得分:12)
您只需将adjustImageWhenHighlighted设置为No。
即可button.adjustsImageWhenHighlighted = NO;
答案 1 :(得分:9)
使您的UIButton成为自定义按钮,然后为其应用UIImage背景。按下时不会突出显示或更改
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
答案 2 :(得分:6)
兄弟,我和你一样尝试过不同的方式。 但终于找到了我自己的食谱:
我不知道如何使用带有UIImage的自定义按钮 但对于带有高亮状态文本的简单UIButton您应该只设置与默认状态下相同的设置。
对于突出显示的状态,IB中的图像属性设置了一个空格。 您可能会发现,单击按钮时,按钮可能会有一个奇怪的小偏移量。对于这种情况,请从textField中删除突出显示状态的文本。它将解决这个问题。
然后在您的点击事件中,您将看不到任何眨眼。
答案 3 :(得分:0)
对于那些使用色调颜色打开的自定义PNG图像的用户,可以使用以下代码避免变暗(例如从白色变为灰色):
clearButton.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;