如何创建具有清晰背景的按钮

Posted

技术标签:

【中文标题】如何创建具有清晰背景的按钮【英文标题】:How to create a button with a clear background 【发布时间】:2014-03-11 03:12:56 【问题描述】:

如何创建一个除了图像之外透明的 UIButton?

我有透明背景的 PNG。我用它创建了一个按钮,然后我得到了蓝色的图像。

如果我将 tintColor 设置为 clearColor,色调会消失,但黑色图像也会消失。

我一直使用 UIButtonTypeSystem 作为按钮类型。

UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem] ;
button.frame = rect ;
[button setImage:image forState:UIControlStateNormal] ;
button.backgroundColor = [UIColor clearColor] ; // Does nothing
button.tintColor = [UIColor clearColor] ;  // Makes the button go away.

【问题讨论】:

【参考方案1】:

为了有一个透明的按钮,你应该把它设为自定义类型。所以你的代码会变成:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = rect ;
[button setImage:image forState:UIControlStateNormal] ;
button.backgroundColor = [UIColor clearColor] ; // This is not necessary, unless you want to specify a color - say [UIColor redColor] - for the button

由于 UIButtonTypeCustom 的行为方式与 UIButtonTypeSystem 不同,因此您应该查看各种布尔标志来设置特定的特征。它们必须手动设置或通过 Interface Builder 设置。这是list 的属性。

【讨论】:

【参考方案2】:
UIButton *button = [UIButton UIButtonTypeCustom] ;
button.frame = rect ;
[button setImage:image forState:UIControlStateNormal];

你只需要使用UIButtonTypeCustom,不需要为UIButton设置任何backgroundColor或tintColor。

【讨论】:

【参考方案3】:

您需要使用UIButtonTypeCustom

【讨论】:

【参考方案4】:

只需更改一行使用 UIButtonTypeCustom 而不是 UIButtonTypeSystem

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom] ;
button.frame = rect ;
[button setImage:image forState:UIControlStateNormal] ;
button.backgroundColor = [UIColor clearColor] ;

【讨论】:

以上是关于如何创建具有清晰背景的按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何在iOS上仅在具有清晰颜色的模糊视图底部获得圆角?

如何创建具有渐变和突出显示的 UIButton?

如何创建具有多种颜色的 qt QTButton?

我可以使用相同的“radioButton_states”drawable并创建一个每个按钮具有不同背景颜色的radioGroup吗?

WPF - 如何使用模板创建图像按钮

我正在尝试创建一个数字小键盘,它有一个清晰的按钮,顶部有一块显示点击的数字。到目前为止我有