【问题标题】:Create alpha UIView with an UIlabel in front of it创建带有 UIlabel 的 alpha UIView
【发布时间】:2011-07-11 04:25:28
【问题描述】:

我想制作一个带有 alpha 和标签的 UIView。

但我希望 UILabel 出现在所有人面前:

怎么做?

这里是代码:

- (void)viewDidLoad {
  [super viewDidLoad];

  self.view.backgroundColor = [UIColor redColor];

  UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 200, 20)];
  lbl.text = @"AAAAAA";
  lbl.backgroundColor = [UIColor clearColor];

  UIView *v = [[UIView alloc] initWithFrame:CGRectMake(50, 210, 230, 50)];
  v.backgroundColor = [UIColor greenColor];
  v.alpha = 0.5;
  [v addSubview:lbl];

  [self.view addSubview:v];

}

绿色视图是 alpha 0.5... 就像文字一样,这是错误的!!!

谢谢。

【问题讨论】:

    标签: iphone objective-c uiview


    【解决方案1】:

    不用设置整个视图的 alpha,只需将背景颜色设置为具有透明度的颜色即可。

    所以改变这个:

    v.backgroundColor = [UIColor greenColor];
    v.alpha = 0.5;
    

    到这里:

    v.backgroundColor = [UIColor colorWithRed:0 green:1 blue:0 alpha:0.5];
    

    【讨论】:

    • @Paska 当您设置整个视图的 alpha 时,Label 是该视图的一部分,因此也设置了它的 alpha。当您只设置视图背景颜色的 alpha 时,标签不受影响。
    【解决方案2】:

    如果要使用内置颜色,请参阅 colorWithAlphaComponent:

    accessoryView.backgroundColor = [[UIColor grayColor] colorWithAlphaComponent:0.4];
    

    【讨论】:

      【解决方案3】:

      在 XCode 4 Interface Builder 中,您可以通过单击视图的背景属性、单击“其他”并在出现的颜色选择器中选择颜色和不透明度值来实现此目的。

      【讨论】:

        猜你喜欢
        • 2011-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-23
        • 2019-09-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多