【发布时间】:2015-03-02 17:48:37
【问题描述】:
我想获得 CALayer 的边界。
在 OSX 上我必须这样做
let bounds = rootLayer?.bounds
在 iOS 上,这个
let bounds = rootLayer.bounds
然后将此边界分配给另一层,我必须这样做
在 OSX 上
anotherLayer.bounds = bounds!
在 iOS 上
anotherLayer.bounds = bounds
为什么? iOS和OSX上的swift有什么不同吗?那会很糟糕。
在这两种情况下,rootLayer 都是这样设置的
let rootLayer = vista.layer
【问题讨论】:
-
如何将值设置为
rootLayer?这一切都源于这样一个事实:在 OSX 上这似乎是一个可选的,而在 iOS 上它不是可选的。 -
在这两种情况下
let rootLayer = vista.layer -
@AlexWayne - 这不是重点。这里的重点是 Apple 应该使两个平台的语言相同。
-
这就是完全的重点。语言是一致的。平台 API 不是。
-
图层属性在 OS X 中返回一个可选项,因为图层在 OS X 中是可选的——除非您告诉它们,否则视图不受图层支持。在 iOS 中,视图总是由层支持,因此该方法不返回可选项。 Apple 可以让它在 iOS 中返回一个可选项(以统一它),但是你必须解包一些不需要解包的东西。
标签: ios macos cocoa cocoa-touch swift