如何将两个视图合并为一个单一视图iOS objective-c(如图所示)?

时间:2015-11-09 12:20:36

标签: ios objective-c uiview

我想制作一个播放按钮,如下图所示。

enter image description here

我设法做了类似的事情。

enter image description here

问题:

在第一张图片中,圆形播放按钮和播放标签的矩形背景是单个图像或视图。我设法使用两个视图制作类似的视图,如下所示。使用视图的圆角半径属性图层。 问题在于,当我们将Alpha值应用于两个视图时,一个视图看起来与另一个视图重叠,并且该区域看起来很暗。它们看起来都是两个不同的视图。 / EM>

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

您必须将两张图片合并为一张。假设你已经创建了两个图像(让我们假设你项目中的某个地方有.png-s),我会尝试这些方法:

// "Load" original images
let image1 = UIImage(named: "img1.png")
let image2 = UIImage(named: "img2.png")

// Crate size for the resulting image and create context
let size: CGSize = CGSizeMake(100, 100);
UIGraphicsBeginImageContext(size);

// Bottom image - draw in context
image1?.drawInRect(CGRectMake(0,0,size.width,size.height))

// Top image - draw in context
image2?.drawInRect(CGRectMake(0,0,size.width,size.height))

// Create new image with context
let newImage = UIGraphicsGetImageFromCurrentImageContext()

// End context
UIGraphicsEndImageContext()

之后调整结果图像的alpha值。如果原始图像已经具有α< 1这可能不起作用,但值得检查。

因此,您不得不重新安排代码,因为我并不认为视图(或CLLayers的重要性)支持iOS中的混合模式。