使图像出现在黑色背景后面
Posted
技术标签:
【中文标题】使图像出现在黑色背景后面【英文标题】:Make image appear behind a black background 【发布时间】:2012-06-26 16:51:35 【问题描述】:我想让图像部分出现在黑色背景后面。
现在我有一个黑色背景的UIView
和一个带有图像的UIImageView
。
我可以以某种方式仅对黑色UIView
的某些部分进行 alpha,以便出现后面的图像吗?
有没有一种方法可以为视图的某些像素设置 alpha 值?
代码:
darkView = [[ShowView alloc] initWithFrame:self.view.frame];
darkView.backgroundColor = [UIColor blackColor];
darkView.alpha = 1.0;
[self.view addSubview: darkView];
imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"testPic.png"]];
imageView.alpha = 1.0;
[darkView addSubview:imageView];
【问题讨论】:
如果你将imageView添加到darkView,无论darkview的alpha如何,imageView都会在顶部并且完全可见。您最好将子视图网格添加到 imageView 并更改它们的 alpha。 您可以在视图的某些部分应用蒙版,并将 alpha 更改为此蒙版 也许你可以使用半透明的黑色图像而不是黑色。 @tiguero:如何添加这样的掩码来更改 alpha 值? 你只需要将它应用到你的视图层的遮罩上:CALayer *mask = [CALayer layer]; mask.frame = CGRectMake(x, y, width, height); mask.backgroundColor = [[UIColor whiteColor] CGColor]; [你的视图层].mask = mask; 【参考方案1】:你现在应该得到它,图像在黑色背景的前面,但是你必须把图像的 alpha 设置为 0; (来自可视化编辑器或)
imageView.alpha = 0.0;
要使图像出现,您只需通过按钮或其他方式运行以下代码:
UIView animateWithDuration: 0.4
delay: 0.0
options: UIViewAnimationOptionCurveLinear | UIViewAnimationOptionBeginFromCurrentState
animations:^
imageView.alpha = 1.0;
completion:^(BOOL finished)
];
【讨论】:
以上是关于使图像出现在黑色背景后面的主要内容,如果未能解决你的问题,请参考以下文章