【问题标题】:How to set NSImage to NSView Using CALayer in Cocoa swift如何在 Cocoa swift 中使用 CALayer 将 NSImage 设置为 NSView
【发布时间】:2017-11-13 07:18:09
【问题描述】:

当我尝试将 NSimage 设置为 NSView 时,我的应用程序崩溃了。

应用程序在 ClockMainview 控制器的以下行崩溃: QuizDetailVC1.clockView.layer?.contents = a1 // 这里是崩溃

class ViewController: NSViewController
    {
        var abc1 = ClockMain()
        @IBOutlet var clock view: NSView!
        let layer = CALayer()    
        func ClockApp()
        {
            layer.contents =  abc1.a1
            layer.contentsGravity = kCAGravityResizeAspectFill
            clockView?.layer = layer
            clockView?.wantsLayer = true
        }
    }

    class ClockMain: NSViewController,NSCollectionViewDelegate,NSCollectionViewDataSource
    {
     var a1 = NSImage(named:"\(UserDefaults.standard.value(forKey: "ImageName")!).jpg")!

      func collectionView(_ collectionView: NSCollectionView, didSelectItemsAt indexPaths: Set<IndexPath>)
        {
            let mainWC1 = view.window?.windowController as? Window
            let QuizDetailVC1 = storyboard?.instantiateController(withIdentifier: "ViewController") as! ViewController
            QuizDetailVC1.clockView.layer?.contents  = a1 // here its a crash
            QuizDetailVC1.layer.contentsGravity = kCAGravityResizeAspectFill
            mainWC1?.contentViewController = QuizDetailVC1
            print("click")
         }
    }

【问题讨论】:

    标签: swift cocoa calayer nsview nsimage


    【解决方案1】:

    先尝试在之前的行中设置:

    QuizDetailVC1.clockView.wantsLayer = true
    QuizDetailVC1.clockView.layer?.contents = a1
    

    【讨论】:

    • @ronakpatel 听起来你是在回答 Pankaj Mundra 的问题?您是拥有 2 个 SO 个人资料的同一个人吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    相关资源
    最近更新 更多