显示自定义UIButton上的灰色叠加层

时间:2012-10-11 14:06:59

标签: iphone objective-c ios uibutton uiimage

我为 iOS 4.3+应用程序创建了自定义UIButton 。我想让背景图像拉伸,所以我使用以下方法设置其背景图像:

[myButton setBackgroundImage:[[UIImage imageNamed:myImagePath]  stretchableImageWithLeftCapWidth:leftStretchValue topCapHeight:topStretchValue] forState:UIControlStateNormal]
[myButton setBackgroundImage:[[UIImage imageNamed:myHighlightedImagePath]  stretchableImageWithLeftCapWidth:eftStretchValue topCapHeight:topStretchValue] forState:UIControlStateHighlighted]
[myButton setBackgroundImage:[[UIImage imageNamed:mySelectedImagePath]
stretchableImageWithLeftCapWidth:eftStretchValue topCapHeight:topStretchValue] forState:UIControlStateSelected]

我在自定义按钮

中添加了一个事件处理程序
[myButton addTarget:self action:@selector(buttonHighlighted:) forControlEvents:UIControlEventTouchDown];

[myButton addTarget:self action:@selector(buttonSelected:) forControlEvents:UIControlEventTouchUpInside];

在上述方法中,我相应地设置了按钮的选定状态和突出显示状态。我更改了UIButton的框架以调整不规则图像的尺寸(mySelectedImage和myHighlightedImage,两者都不是矩形),以便它与myImage一起正确对齐。

- (void) buttonSelected {
myButton.selected = !myButton.selected; //setting the selected property to NO in the     viewDidLoad

//code to change the frame of the UIButton to accomodate the irregular image
}


- (void) buttonHighlighted {
myButton.highlighted = YES;
}

我面临的问题是,当我选择myButton时,在myImage上显示灰色叠加很短的时间才会显示myHighlightedImage和mySelectedImage作为其背景。我已经将myButton的背景颜色设置为clearColor ,认为这可能是原因,但它没有得到解决。

可能是什么问题......?

1 个答案:

答案 0 :(得分:6)

button.adjustsImageWhenHighlighted = NO;

我认为这就是你要找的......