我想制作一个播放按钮,如下图所示。
我设法做了类似的事情。
问题:
在第一张图片中,圆形播放按钮和播放标签的矩形背景是单个图像或视图。我设法使用两个视图制作类似的视图,如下所示。使用视图的圆角半径属性图层。 问题在于,当我们将Alpha值应用于两个视图时,一个视图看起来与另一个视图重叠,并且该区域看起来很暗。它们看起来都是两个不同的视图。 / EM>
如何解决此问题?
答案 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中的混合模式。