使图像出现在黑色背景后面

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)

                 ];

【讨论】:

以上是关于使图像出现在黑色背景后面的主要内容,如果未能解决你的问题,请参考以下文章

叠加在图像上时,使文本显示为白色,具有半透明的黑色背景

使用gd在php中调整图像大小后的黑色背景

imagemagick - 具有静态黑色背景的动画?

动画PNG图像不流畅,在IE中得到黑色背景

Imagemagick 旋转透明图像上不需要的黑色背景

UIPageViewController 中控制器后面的黑色背景