Swift CALayer代码应该存在于视图还是视图控制器中?
首先,请原谅我的无知 我正在重构一个自定义视图(扩展了NSView),以使用CALayers绘制网格。网格可以调整大小和拉伸等(我正在适当地暴露iBaction/Outlet) 问题是CALayers的所有使用示例都将代码放入NSViewController的ViewDidLoad()方法中 我只是想了解为什么会这样,以及是否有一个合适的位置将此代码放在视图中,这感觉更正确一些(再次原谅无知)Swift CALayer代码应该存在于视图还是视图控制器中?,swift,macos,cocoa,view,calayer,Swift,Macos,Cocoa,View,Calayer,首先,请原谅我的无知 我正在重构一个自定义视图(扩展了NSView),以使用CALayers绘制网格。网格可以调整大小和拉伸等(我正在适当地暴露iBaction/Outlet) 问题是CALayers的所有使用示例都将代码放入NSViewController的ViewDidLoad()方法中 我只是想了解为什么会这样,以及是否有一个合适的位置将此代码放在视图中,这感觉更正确一些(再次原谅无知) 提前感谢。您应该子类NSView,而不是NSViewController。您可以自定义视图覆盖view
提前感谢。您应该子类NSView,而不是NSViewController。您可以自定义视图覆盖viewWillMove方法
类视图:NSView{override func viewWillMove(toSuperview NewsSuperView:NSView?{//customize your view here}
我仍在为我的视图扩展NSView,但在示例中,即他们在ViewController中构建CALayer逻辑,然后在视图上设置它。这是正确的还是我可以在视图的draw函数中执行此操作?如果您需要只绘制覆盖func draw(uDirtyRect:NSRect){super.draw(dirtyRect)
顺便说一句,您粘贴的链接是针对iOS的,而不是OSXI,请理解,但是NSView和UIView共享相同的数据,它们是完全不同的