不能让我的UIButton显示为半透明

时间:2011-07-08 22:44:47

标签: iphone popup uibutton uicolor

我在弹出窗口中添加了一个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];

5 个答案:

答案 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以使其显示为圆角。