在 xib 中带有 alpha 的 UIView 背景颜色
Posted
技术标签:
【中文标题】在 xib 中带有 alpha 的 UIView 背景颜色【英文标题】:UIView background color with alpha in xib 【发布时间】:2015-03-04 19:53:26 【问题描述】:我有问题。我正在尝试使用位于中心的图像制作我的自定义 UIView。该图像之外的部分必须是透明和灰色的。 在 xib 的“视图”中,我设置了这个:
结果 - 失败。图像之外的区域只是灰色的,而不是透明的。 但是如果我添加
-(void) viewDidLoad
self.view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5f];
然后一切都按预期进行。 尝试在 xib 中实现透明背景时我做错了什么?
更新: 我找到了呈现视图的代码,其中设置了 alpha。所以我想这就是问题所在。谢谢。对不起,我是新手
【问题讨论】:
您确定它不起作用吗?也许 alpha 为 0.75 的浅灰色并没有那么大的视觉效果。就像你在代码中所做的那样尝试:带有 0.5 alpha 的黑色 【参考方案1】:也许这就是你所期望的。您只能更改背景颜色而不是视图的 alpha。只需将opacity
设置为背景颜色即可。
【讨论】:
太棒了!这提供了设置 UIView 背景透明和不透明继承!【参考方案2】:在设置父 UIView 的 alpha 时,alpha 值将传递给子视图,为所有子视图提供相同的 alpha。如果将 UIView 的 alpha 值设置为 1,则设置的是视图的 alpha,而不是颜色。
也就是说,您可以设置背景颜色的 alpha。执行此操作时,视图将保持其自己的 alpha 值,而背景颜色具有自己的 alpha 值。希望这会有所帮助
【讨论】:
【参考方案3】:问题在于自定义显示方法。它没有使用 presentViewController:animated:completion: 方法。它使用从 0 到 1 的 alpha 动画。第二个 - 当使用标准 presentViewController:animated:completion: 方法时可可优化隐藏了底层视图,所以我需要设置(对于 ios 8) p>
vc_to_present_on.modalPresentationStyle = UIModalPresentationCurrentContext;
vc_to_be_presented.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
然后一切都按预期工作
【讨论】:
以上是关于在 xib 中带有 alpha 的 UIView 背景颜色的主要内容,如果未能解决你的问题,请参考以下文章
使用 Cardboard 在 Unity 3D 中带有 alpha 的 Skybox
Swift 中带有 CollectionView 和 TableView 的 UIView
swift - 在UIScrollView上从xib添加UIView后如何更新约束?