【发布时间】:2018-03-24 06:10:48
【问题描述】:
我正在构建一些我希望可以交叉编译的代码。
目标是显示拉伸图像以适应整个视图。这是我在扩展 UIView(在 iOS)或 NSView(在 macOS)的类中调用的函数:
var viewLayer:CALayer?
func updateViewer() {
if let curr = viewLayer {
curr.removeFromSuperlayer()
}
viewLayer = CALayer()
viewLayer?.frame = Rect(x: 0, y: 0, width: frame.size.width, height: frame.size.height)
viewLayer?.contentsGravity = kCAGravityResizeAspectFill
viewLayer?.contents = //A UIImage
//This may look weird but its a good way to get it to work on UIView and NSView
if let laya = (layer as Any) as? CALayer {
laya.frame = Rect(x: 0, y: 0, width: frame.size.width, height: frame.size.height)
laya.insertSublayer(viewLayer!, at: 0)
}
}
此代码在 OSX 上完美运行,但在 iOS 中它只是空白,我不知道为什么。
【问题讨论】:
标签: ios uikit core-graphics core-animation