UIButton选择颜色

5

我正在绘制一个自定义的UIButton,当它高亮时想要设置为蓝色。我该如何实现这一目标?

UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
[myButton setBackgroundImage:[[UIImage imageNamed:@"test.png"] stretchableImageWithLeftCapWidth:100 topCapHeight:0] forState:UIControlStateNormal];

这不是重复问题。链接的问题没有涉及到高亮颜色,只有背景颜色。 - len
嘿,我创建了一个类别,可以帮助你实现这个功能:https://github.com/NSElvis/UIButton-ANDYHighlighted。 - 3lvis
5个回答

3
您可以按照以下步骤为您的状态(正常/高亮/选定)设置图像。您必须拥有这些图像。
[downButton setImage:[UIImage imageNamed:@"white.png"] forState:UIControlStateNormal];
[downButton setImage:[UIImage imageNamed:@"blue.png"] forState:UIControlStateHighlighted];

3

是的,你可以创建一个1像素乘1像素的“蓝色”图像,并使用以下代码:

[yourButton setBackgroundImage:[UIImage imageNamed:@"theImageYouMade.png"] forState:UIControlStateHighlighted];

在我的方法中,您不能使用“setImage:”,因为按钮的高亮状态实际上只会在按钮中央显示1像素乘1像素的图像。

我的方法适用于可变大小的按钮。使用setImage:需要制作与您的按钮完全相同大小的图像。

- Chris


如果颜色是动态的[请看如何从颜色创建图像](https://dev59.com/fF8d5IYBdhLWcg3wsT4b#33675160) - Top-Master

2

5
如果另一个SO问题的回答完全回答了这个问题,以至于您只需要链接到它,那么请标记为重复而不是发布。 - jscs
4
不是重复的问题。链接的问题只涉及背景颜色,没有涉及到强调颜色。 - len

0

也许可以为不同的状态设置不同的背景图片?


0

UIControlStateHighlighted提供背景图片。同时关闭adjustsImageWhenHighlighted可能会有所帮助,但如果您为高亮状态提供了单独的背景图片,则这不应该成为问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接