我有问题。我正在尝试使用图像放在我的自定义UIView中心。该图像外部的部分必须透明且呈灰色。 在xib中为“View”我设置了这个:
结果 - 失败。图像外的区域只是灰色,不透明。 但是,如果我添加
-(void) viewDidLoad
{
self.view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5f];
}
然后一切都按预期工作。 尝试在xib中实现透明背景时,我做错了什么?
更新: 我找到了正在进行视图呈现的代码,并且里面有alpha设置。所以我猜这就是问题所在。谢谢。很抱歉这么新手
答案 0 :(得分:5)
也许这就是你的期望。您只能更改背景颜色而不是视图的alpha。只需使用背景颜色设置opacity
。
答案 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;
然后一切都按预期工作