iOS - 界面生成器 - 不继承父视图 alpha 的子视图

Posted

技术标签:

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

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

以前有人经历过吗?

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

【问题讨论】:

显示您如何布置视图并将它们添加为子视图。 为此更新了问题。谢谢。 不要将 alpha 设置为 0,而是将父视图的背景颜色设置为“清除颜色”并将 alpha 设置回 1。 这不会达到我想要的效果。 【参考方案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 属性。在这种情况下,子视图继承父视图的属性。它解决了我的问题。

【讨论】:

以上是关于iOS - 界面生成器 - 不继承父视图 alpha 的子视图的主要内容,如果未能解决你的问题,请参考以下文章

界面生成器中的 iOS 阴影视图

Android studio界面布局的简单介绍

iOS UIButton改变区域或超出父视图响应

iOS界面篇 - bounds和frame的相同和区别

iOS开发——代码生成TabBar与视图切换具体解释

如何在 iOS 4 中从 UIViews 加载 nib?