尝试设置CAShapeLayer
的zPosition时出错。这是代码:
self.view.layer.sublayers[l].zPosition = CGFloat(1)
出于某种原因,我收到此错误:Cannot assign a value of type CGFloat to a value of type CGFloat!
。出于某种原因,错误是可选的。我已经看到其他在线完成的示例没有任何演员(zPosition = 1
),所以我不知道这里有什么问题。
谢谢!
答案 0 :(得分:7)
sublayers
的{{1}}属性定义为CALayer
。当您下标为[AnyObject]!
时,您得到...sublayers[l]
,当然,它没有AnyObject
的可设置属性。您需要将返回的zPosition
向下转换为AnyObject
,例如
CALayer
此外,您不需要打开if let layer = self.view.layer.sublayers[l] as? CALayer {
layer.zPosition = CGFloat(1)
}
(在订阅之前),因为它是使用sublayers
声明的,因此会隐式地自动解包。
最后,您引用的错误消息似乎被错误复制,因为它是荒谬的。
答案 1 :(得分:1)
子图层被定义为AnyObject的Optional数组。因此,您必须打开子层。以下应该有效:
self.view.sublayers![l].zPosition = CGFloat(1)