UIView背景颜色与alpha在xib

时间:2015-03-04 19:53:27

标签: objective-c xcode xib

我有问题。我正在尝试使用图像放在我的自定义UIView中心。该图像外部的部分必须透明且呈灰色。 在xib中为“View”我设置了这个:My View's settings in xib

结果 - 失败。图像外的区域只是灰色,不透明。 但是,如果我添加

-(void) viewDidLoad
{
  self.view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5f];
}

然后一切都按预期工作。 尝试在xib中实现透明背景时,我做错了什么?

更新: 我找到了正在进行视图呈现的代码,并且里面有alpha设置。所以我猜这就是问题所在。谢谢。很抱歉这么新手

3 个答案:

答案 0 :(得分:5)

也许这就是你的期望。您只能更改背景颜色而不是视图的alpha。只需使用背景颜色设置opacity

enter image description here

答案 1 :(得分:1)

设置父UIView的alpha时,alpha值将传递给子视图,为所有子视图提供相同的alpha。如果将UIView的alpha值设置为1,则设置视图的alpha值,而不是颜色。

也就是说,你可以设置背景颜色的alpha。执行此操作时,视图保持自己的alpha值,而背景颜色具有自己的alpha值。希望这有帮助

答案 2 :(得分:1)

问题出在自定义show方法中。它没有使用 presentViewController:animated:completion:方法。它使用了从0到1的alpha动画。第二种 - 当使用标准 presentViewController:animated:completion:方法时,cocoa优化隐藏了底层视图,所以我需要设置(适用于iOS 8)

vc_to_present_on.modalPresentationStyle = UIModalPresentationCurrentContext;
vc_to_be_presented.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;

然后一切都按预期工作