【问题标题】:iOS - Interface Builder - subviews not inheriting superview alphaiOS - 界面生成器 - 不继承父视图 alpha 的子视图
【发布时间】:2013-05-23 12:37:35
【问题描述】:

在 Interface Builder 中,我在 ViewController 的主视图上放置了一个 UIView。 在那个 UIView 上,我添加了许多元素,这样当我将该视图的 alpha 减少到 0 时, 所有元素的 alpha 值都会降低。这是预期的正常行为,但它不起作用。

以前有人经历过吗?

如图所示,子视图(“图像视图 - 事务...”等)没有继承“视图”的 alpha

【问题讨论】:

  • 显示您如何布置视图并将它们添加为子视图。
  • 为此更新了问题。谢谢。
  • 不要将 alpha 设置为 0,而是将父视图的背景颜色设置为“清除颜色”并将 alpha 设置回 1。
  • 这不会达到我想要的效果。

标签: ios uiview interface-builder alpha subviews


【解决方案1】:

首先看到你自己。因为如果你在这种情况下将 alpha 设置为你的超级视图,你的视图将会消失,所以在这种情况下你怎么能看到你的子视图。并尝试使用这个确保你会看到透明的视图。第二件事你知道alpha = 0的意思吗。

 for (UIView *subview in [self.view subviews])
    {
        if ([subview isKindOfClass:[UIView class]])
        {
            subview.alpha = 0.5;
        }
    }

【讨论】:

  • 我知道这是可能的,但我不想诉诸于此。我只需要视图正常运行。一定是我在 IB 做错了什么。
  • 试着在你的自我中看到。因为如果你在这种情况下将 alpha 设置为你的超级视图,你的视图将会消失,所以在这种情况下你怎么能看到你的子视图。
  • 你找到解决方案了吗?
  • 不是一次又一次,问题是界面生成器没有将子视图识别为子视图。我需要知道为什么以及如何在 Interface Builder 中修复它。
  • 如果你设置 alpha = 0 这意味着你会消失那个视图。所以我建议你做 alpha = .5f 在这种情况下你可以看到你的所有子视图。
【解决方案2】:

我有同样的问题,我不知道原因。但是如果你需要隐藏你的视图,你可以使用你的超级视图的hidden 属性。在这种情况下,子视图继承父视图的属性。它解决了我的问题。

【讨论】:

    猜你喜欢
    • 2015-12-26
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    相关资源
    最近更新 更多