尝试设置 CAShapeLayer
的 zPosition 时出现错误。这是代码:
self.view.layer.sublayers[l].zPosition = CGFloat(1)
出于某种原因,我收到此错误:无法将 CGFloat 类型的值分配给 CGFloat 类型的值!
。出于某种原因,错误是可选的。我在网上看到其他示例没有任何转换 (zPosition = 1
),所以我不知道这里的问题是什么。
谢谢!
最佳答案
CALayer
的sublayers
属性定义为[AnyObject]!
。当您下标为 ...sublayers[l]
时,您会得到一个 AnyObject
,可以肯定的是,它没有 zPosition
的可设置属性>。您需要将返回的 AnyObject
向下转换为 CALayer
,例如
if let layer = self.view.layer.sublayers[l] as? CALayer {
layer.zPosition = CGFloat(1)
}
此外,您不需要解包 sublayers
(在下标之前),因为它是用 !
声明的,因此会隐式地自动解包。
最后,您引用的错误消息似乎是错误复制的,因为它毫无意义。
关于swift - 无法将 CGFloat 类型的值分配给 CGFloat 类型的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29707071/