UIButton 在按钮图像和标题后面留下白色背景

Posted

技术标签:

【中文标题】UIButton 在按钮图像和标题后面留下白色背景【英文标题】:UIButton leaves white background behind button image and title 【发布时间】:2015-12-18 21:31:45 【问题描述】:

UIButtons 上面有图片和标题。我正在使用appearanceWhenContainedInInstancesOfClasses: 更改应用程序中的主题。当我根据我想要的主题更改 UIButton 的背景和标题颜色时,它会在 UIButton 的标题和图像后面留下一些白色背景(下图显示它)。

如何去掉按钮标签和图片后面的白色背景?

【问题讨论】:

【参考方案1】:

您可以为每个按钮使用以下代码。

btn.backgroundColor = [UIColor clearColor];
btn.opaque = NO;

详细说明

问题的根源在于,按钮的默认背景颜色是白色,因此一旦将背景颜色/主题应用于按钮所在的 UIView,白色就会变得可见且看起来不太好。因此,我建议将 btw 颜色 clearColor 或 UIView 颜色更改为白色。

【讨论】:

我试过了,但它不起作用。 UIView 具有您看到的默认颜色。 UIButton 上的图像和按钮标签下是否有一些 uiview?如果有怎么访问呢? 您正在 UIView 顶部添加按钮。所以在z平面上,Button在上,UIView在下。如果您将按钮背景颜色更改为清除,则 btn 将没有背景颜色 我正在为全局的 uiviews 设置白色,如下所示:[[UIView appearanceWhenContainedInInstancesOfClasses:@[[GoogleAdsViewController class]]] setBackgroundColor:[UIColor whiteColor]];。我发现这是导致问题的原因。不知道如何解决这个问题。 试试下面的[[UIView appearanceWhenContainedInInstancesOfClasses:@[[GoogleAdsViewController class]]] setBackgroundColor:[UIColor clearColor]]; 已经试过了,但这会破坏我的其他观点,因为我将它用于主题。【参考方案2】:

您可能已将按钮的图像设置为背景,或者您的图像本身具有白色背景。

【讨论】:

以上是关于UIButton 在按钮图像和标题后面留下白色背景的主要内容,如果未能解决你的问题,请参考以下文章

iOS:如果背景图像与按钮颜色相同,则更改我的 UIButton 的颜色

UIAlertView 和 UIButton 在白色背景上有白色按钮

带有背景图像和标题的 UIButton 使用自动布局

我更改 UIBUtton 背景图像的方式有啥问题?

iOS7 UIButton图像闪烁

如何在不通过 Interface Builder 获取 UIButton 类的背景的情况下添加图像?