启用“显示混合图层”时,UIButton部分为红色

时间:2014-05-29 18:33:41

标签: ios objective-c uibutton transparency opacity

我想通过在适当的时候使我的视图不透明来提高性能。我有一个UIButton在模拟器中显示红色 - 它只是按钮文本周围的红色,而不是整个框架。在故事板中,我启用了Opaque并将背景颜色从清晰变为白色,但在模拟器中仍显示红色。

如何将其更改为绿色以使其完全不透明并且不尝试使用透明度?

请注意,当您更改背景并且不透明为YES时,UILabel为绿色。

2 个答案:

答案 0 :(得分:3)

我在您的案例中使用以下代码:

[button.titleLabel setOpaque:YES];
[button.titleLabel setBackgroundColor:[UIColor whiteColor]]; 
// or which-you-want-color

显然,你应该对你的按钮保持弱引用。

漂亮的作品。按钮尺寸小于屏幕截图尺寸。

enter image description here

答案 1 :(得分:0)

我相信UIButton是由几个视图组成的,例如titleLabel。可以枚举UIButtons的子视图并将它们设置为不透明。

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
for(UIView *subview in [button subviews]){
    subview.opaque = YES;
}