UIButton在触摸时移除覆盖边框

时间:2012-11-21 17:57:42

标签: objective-c ios cocoa-touch uibutton

我需要一个UIButton,但我不想要它的边框。

然而,当有人触摸按钮

时,我仍然希望保留漂亮的渐变叠加效果

与Facebook iPad应用程序一样,它们在新闻Feed中显示的文字链接会在您触摸时显示灰色框叠加。

我在这里看到了一个关于使用UISegmentedControl的解决方案。但是我不想在解决方案中使用渐变/ Quartz框架。

以前有人遇到过这个问题吗?

更新

这是一个例子 image

(1)在您触摸之前(2)是您触摸按钮时发生的情况。

我基本上只想复制这个效果,我猜一个透明的'叠加',就像当你触摸按钮但没有边框时会发生什么。

2 个答案:

答案 0 :(得分:1)

以您想要的颜色制作UIImage,并为突出显示的状态调用setBackgroundImage:forState:(当用户点击该按钮时,该按钮会突出显示);

答案 1 :(得分:1)

使用以下内容:

UIButton *yourButton = [UIButton buttonWithType:UIButtonTypeCustom];
[yourButton setFrame:CGRectMake(0, 0, 200, 44)];
[yourButton setTitle:@"like" forState:UIControlStateNormal];

[yourButton setBackgroundImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
[yourButton setBackgroundImage:[UIImage imageNamed:@"gradient.png"] forState:UIControlStateHighlighted];

// Round corners? Requires Quartzcore framework
[yourButton.layer setCornerRadius:8.0f];
[yourButton.layer setMasksToBounds:YES];
[yourButton.layer setBorderWidth:0.0f];