UIButton选择颜色

时间:2011-05-20 02:06:18

标签: iphone objective-c cocoa-touch ios uibutton

我正在绘制自定义UIButton,并希望在突出显示时设置蓝色。我怎样才能做到这一点?

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

5 个答案:

答案 0 :(得分:3)

您可以执行以下操作来设置状态图像(正常/突出显示/选中)。你必须有图像。

[downButton setImage:[UIImage imageNamed:@"white.png"] forState:UIControlStateNormal];
[downButton setImage:[UIImage imageNamed:@"blue.png"] forState:UIControlStateHighlighted];

答案 1 :(得分:2)

您可以尝试使用其他图片来完成这项工作。您也可以参考以下链接:

Is it even possible to change a UIButtons background color?

答案 2 :(得分:2)

Ya,您可以创建1px x 1xx“蓝色”图像并使用以下内容:

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

您不能在我的方法中使用“setImage:”,因为按钮的突出显示状态实际上只会在按钮中心显示1px x 1xx图像。

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

-Chris

答案 3 :(得分:0)

也许为不同的状态设置不同的背景图像?

答案 4 :(得分:0)

UIControlStateHighlighted提供背景图片。此外,关闭adjustsImageWhenHighlighted可能会有所帮助,但如果您为突出显示的状态提供单独的背景图像则无关紧要。