Iphone iOS UIButton始终是透明的

Iphone iOS UIButton始终是透明的,iphone,ios,objective-c,uibutton,transparency,Iphone,Ios,Objective C,Uibutton,Transparency,我在iphone应用程序中有一个自定义视图,当条件满足时,它会使屏幕变暗,并向用户显示一些输入字段 我没有问题禁用主控件和“调暗”屏幕(只是alpha=0.6的UIView),但是我在上面显示的控件似乎总是有一些透明度(我可以通过UIButton读取一些文本),即使我将控件的alpha设置为1.0并将不透明设置为YES。我甚至试着在按钮和覆盖层之间加上一层额外的不透明层,它仍然是部分透明的 供参考:(iOS 6.1) 即使使用上述代码,按钮也是透明的。有人知道为什么以及如何使按钮不透明吗?之所以

我在iphone应用程序中有一个自定义视图,当条件满足时,它会使屏幕变暗,并向用户显示一些输入字段

我没有问题禁用主控件和“调暗”屏幕(只是alpha=0.6的UIView),但是我在上面显示的控件似乎总是有一些透明度(我可以通过UIButton读取一些文本),即使我将控件的alpha设置为1.0并将不透明设置为YES。我甚至试着在按钮和覆盖层之间加上一层额外的不透明层,它仍然是部分透明的

供参考:(iOS 6.1)


即使使用上述代码,按钮也是透明的。有人知道为什么以及如何使按钮不透明吗?

之所以可以部分看穿
ui按钮
,是因为它是叠加
ui视图
的子视图,其alpha为
0.6
。您需要执行以下操作:

// Create the overlay view just like you have it...
UIView *overlay = [[UIView alloc] initWithFrame:parentView.frame];
overlay.backgroundColor = [UIColor blackColor];
overlay.alpha = 0.6;

// Continue adding this to the parent view
[parentView addSubview:overlay];

// Create the button
UIButton *button = [UIButton buttonWithType:UIButtonRoundedRect];
button.backgroundColor = [UIColor whiteColor];
[button setTitle:@"Done" forState:UIControlStateNormal];
[button setFrame:CGRectMake(0.0, 0.0, 44.0, 44.0)];

// Add this button directly to the parent view
[parentView addSubview:button];

我建议您使用不透明功能,您将获得最佳性能:

  • 使用IB使按钮不透明:选择所需的按钮,在工具右侧栏转到属性检查器,并在视图部分标记为不透明,不要忘记更改背景

  • 之后,您必须以编程方式更改UIButton内标签的不透明:

    yourButtonOutlet.titleLabel.opaque = true;
    yourButtonOutlet.titleLabel.backgroundColor = [UIColor *YOUR DESIRED COLOR*];
    

请理解,对于快速渲染,建议使用不透明。

您的意思是说按钮的alpha也为0.6。我说的对吗?谢谢,我很傻,我一看就明白了。
yourButtonOutlet.titleLabel.opaque = true;
yourButtonOutlet.titleLabel.backgroundColor = [UIColor *YOUR DESIRED COLOR*];