Ios UIButton内的CALayer

Ios UIButton内的CALayer,ios,uibutton,swift2,calayer,Ios,Uibutton,Swift2,Calayer,我正在建立一个基于按钮的菜单。我纯粹是在代码中构建它们 let menu00 = UIButton() menu00.frame=menuHome let imageSubLayer = CALayer() imageSubLayer.contents = UIImage(named: "menuIcon.png")!.CGImage menu00.layer.insertSublayer(drawHexFill(menu00.frame, fillColor: UIColor.lightGra

我正在建立一个基于按钮的菜单。我纯粹是在代码中构建它们

let menu00 = UIButton()
menu00.frame=menuHome
let imageSubLayer = CALayer()
imageSubLayer.contents = UIImage(named: "menuIcon.png")!.CGImage
menu00.layer.insertSublayer(drawHexFill(menu00.frame, fillColor: UIColor.lightGrayColor()), atIndex: 2)
menu00.layer.insertSublayer(drawHexBorder(menu00.frame, fillColor: UIColor.clearColor()), atIndex: 1)
menu00.layer.insertSublayer(imageSubLayer, atIndex: 0)
menu00.titleLabel!.text="MENU"
menu00.titleLabel!.textColor=UIColor.whiteColor()
menu00.tag=100
self.view.addSubview(menu00)
drawHexFill和drawHexBorder是两种用于绘制图形层的UIBezierPath方法,我使用按钮时会根据情况使用不同的颜色边框和填充

我的问题是文本和图像不可见。如果我添加图像作为按钮图像,它是可见的,但是在十六进制边框和十六进制填充层后面

我尝试了所有对象的不同位置“atIndex”,但根本无法得到我想要的。我想十六进制填充的背景,下一个和图像或文字上的顶部


有什么建议吗?

问题可能是您的
子层的
.zPosition
属性值不同。从

将新的子层对象添加到当前层。添加子层 到层的子层列表的末尾。这将导致子层 以相同的值显示在任何同级的顶部 zPosition属性

从。您可以再次检查
.zPosition
属性对于所有三个子层是否具有相同的值



如果这不是问题所在,请尝试使用
insertSubLayer:above
而不是
insertSubLayer:atIndex
(请参阅)。

这是否正常?如果是这样,考虑添加答案和关闭问题,或者,如果给定答案回答为你;通过接受问题来结束问题。