我为按钮的状态Normal,Highlighted和Selected设置了一个图像,但是当按钮处于选中状态时我按下/突出显示它我没有看到我突出显示的图像而只是灰色的图像 . 选择按钮时,是否可以将图像设置为高亮显示状态?
我的代码:
[button setImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"pressed.png"] forState:UIControlStateHighlighted];
[button setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateSelected];
当我做:
[button setSelected:YES];
并按下按钮,“pressed.png”图像不会选择 .
13 回答
我找到了解决方案:需要添加添加行
您可以在Interface Builder中执行此操作 .
选择要在
IB
中设置的UIButton
,然后转到attributes inspector
.在屏幕截图中,我使用的是自定义按钮类型,但这确实很重要 .
我想这里的大多数海报完全忽略了这一点 . 我有同样的问题 . 最初的问题是关于选中按钮(组合两个状态)的突出显示状态,它无法在IB中设置并且在一些变暗的情况下回落到默认状态 . 只提到工作解决方案作为一个帖子:
斯威夫特3
要设置背景图片,我们可以使用
setBackgroundImage(_:for:)
Swift 2.x
如果你有充分的理由这样做,这将成功
添加这些目标:
在Swift 3.x中,您可以按以下方式选择按钮时设置高亮显示的图像:
在swift中你可以这样做:
如果我错了,请纠正我 . 通过做
您正在明确更改所选按钮的状态 . 因此,您提供的代码自然会在您的case checked.png中为所选状态提供图像
如果有人想知道这在Swift中是如何工作的,这是我的解决方案:
我有问题设置
imageView.highlighted = NO;
(设置 YES 工作正常,图像更改为突出显示的图像) .解决方案是调用
[imageView setHighlighted:NO];
一切正常 .
你想打电话的地方
方法:
归功于Jorge,但我改进了一些,给出了完整的工作解决方案
斯威夫特3
OR
这意味着按钮当前处于
selected
状态,然后触摸它,显示highlight
状态 .Xamarin C#
按位进行OR由于某种原因不起作用
以下作品