用于UIControlStateHighlighted的UIButtonTypeSystem setBackgroundImage

时间:2013-10-29 08:50:22

标签: ios objective-c uibutton ios7

在我的所有应用程序中,我都使用UIButton和UIButtonTypeSystem。 对于ios7,我想以编程方式设置按钮外观。 对于正常状态我需要带有蓝色边框颜色的白色背景 normal state button

对于突出显示的状态我需要带有蓝色边框颜色的灰色背景 highlighted state button

(对于禁用状态我需要带灰色边框的白色背景)

我为每个状态创建了图像(包含背景和边框颜色),我使用UIButton的方法setBackgroungImage:forState:来设置它们。 但当按钮处于高亮状态时,我会得到这个按钮样式 actual highlighted state button

克服此行为的唯一方法是将所有应用程序按钮类型从UIButtonTypeSystem更改为UIButtonTypeCustom。意思是传递所有应用程序xib的

是否有另一种方法可以不改变所有应用程序按钮类型

感谢 罗伊

1 个答案:

答案 0 :(得分:1)

您好,您可以按照以下方式设置您的按钮:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(aMethod:)
forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[buuton setBackgroundColor:[UIColor colorWithRed:(255/255.0) green:(180/255.0) blue:(200/255.0) alpha:1]];
[view addSubview:button];