我在弹出窗口中添加了一个UIButton作为子视图,我无法让它以半透明的方式显示出来。弹出窗口主视图的背景确实半透明地显示,但是这个UIButton保持完全不透明。有人可以告诉我为什么下面的代码不起作用?感谢。
UIButton* checkButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
checkButton.frame = CGRectMake(187, 288, 30, 30);
[checkButton setTitle:@"?" forState:UIControlStateNormal];
checkButton.opaque = NO;
[checkButton setBackgroundColor:[UIColor colorWithWhite:1.0 alpha:0.3]];
[checkButton setTitleColor: [UIColor colorWithRed: 51 / 255.0 green:0 blue: 153 / 255.0 alpha:0.5] forState: UIControlStateNormal];
[checkButton addTarget:self action:@selector(check) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:checkButton];
答案 0 :(得分:3)
RoundedRect按钮的背景是它所在的矩形,而不是按钮本身。尝试将背景颜色更改为红色或同样可见的内容,您将看到背景仅在按钮的圆角和设置按钮的矩形框之间可见。遗憾的是,您无法更改按钮的颜色,这是大多数人认为他们在更改backgroundColor
属性时所做的事情。
要更改按钮颜色,您需要使用UIButtonTypeCustom
。
答案 1 :(得分:2)
尝试将UIColor设置为
myButton.layer.backgroundColor = [UIColor x..]
你需要一个
#import <QuartzCore/QuartzCore.h>
我非常确定圆角矩形按钮中的颜色是在图层中,而不是在常规背景中,这就是人们难以改变颜色的原因。
交替地,将视图颜色上的alpha放回1并点击视图alpha属性,这肯定会在一次移动中完成。
答案 2 :(得分:1)
PengOne是对的 - 设置背景颜色不会改变圆角矩形的颜色。它只影响矩形周围的角落。
但您也可以将按钮的alpha属性设置为小于1的值。尝试0.7使视图半透明。
答案 3 :(得分:0)
尝试使用UIButtonTypeCustom
代替UIButtonTypeRoundedRect
作为按钮类型。
答案 4 :(得分:0)
UIButtonTypeRoundedRect很奇怪。在它上面设置背景/ alpha等只会改变渲染按钮的矩形的背景。
您可以将按钮类型更改为UIButtonTypeCustom,然后使用QuartzCore设置cornerRadius以使其显示为圆角。