Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift OSX新增:NSImageView使用drawInRect绘制多幅图像-Can';更新图像_Swift_Macos_Cocoa_Nsview_Nsimageview - Fatal编程技术网

Swift OSX新增:NSImageView使用drawInRect绘制多幅图像-Can';更新图像

Swift OSX新增:NSImageView使用drawInRect绘制多幅图像-Can';更新图像,swift,macos,cocoa,nsview,nsimageview,Swift,Macos,Cocoa,Nsview,Nsimageview,请原谅我的无知。。我是斯威夫特的新手,我正在努力解决这个问题 我有一个自定义NSImageView(称为“AdFrame”),它在NSRects中绘制两个图像。当用户输入某个数字时,我希望底部图像发生变化 加载默认图像时(启动应用程序时),它绘制得很好,但不会使用新图像更新 以下是NSImageView类中的函数(drawImages): var adUrl = NSURL(string: "ftp://mysite.com/12345.jpg") let topImage =

请原谅我的无知。。我是斯威夫特的新手,我正在努力解决这个问题

我有一个自定义NSImageView(称为“AdFrame”),它在NSRects中绘制两个图像。当用户输入某个数字时,我希望底部图像发生变化

加载默认图像时(启动应用程序时),它绘制得很好,但不会使用新图像更新

以下是NSImageView类中的函数(drawImages):

    var adUrl = NSURL(string: "ftp://mysite.com/12345.jpg")

    let topImage = NSImage(named: "logo")
    let bottomImage = NSImage(byReferencingURL: adUrl!)

    let bottomRect = NSRect.init(x: 0, y: 0, width: 500, height: 200)
    let topRect = NSRect.init(x: 250, y: 250, width: 100, height: 75)

    adImage.drawInRect(bottomRect)
    logoImage!.drawInRect(topRect)
从另一个类更新底部图像的函数:

@IBAction func updateImage(sender: AnyObject) {
    let theADFrame = AdFrame()
    let adNumber = adNumTF.stringValue
    theADFrame.adUrl = NSURL(string: "ftp://mysite.com/\(adNumber).jpg")
    theADFrame.drawImages()
 }
运行此函数时,新url将传递给ImageView,但图像不会在我的应用程序中更新


谢谢,drawImages总是使用相同的URL(12345)。您可以将URL作为参数传递给
drawImages

func drawImages(url : NSURL) {

    let topImage = NSImage(named: "logo")
    let bottomImage = NSImage(byReferencingURL: url)

    let bottomRect = NSRect.init(x: 0, y: 0, width: 500, height: 200)
    let topRect = NSRect.init(x: 250, y: 250, width: 100, height: 75)

    adImage.drawInRect(bottomRect)
    logoImage!.drawInRect(topRect)
}
并在
updateImage

let adUrl = NSURL(string: "ftp://mysite.com/\(adNumber).jpg")!
theADFrame.adUrl = adUrl
theADFrame.drawImages(adUrl)
第一个电话呢

drawImages(NSURL(string: "ftp://mysite.com/12345.jpg")!)

谢谢你的回复。。我做了建议的更改,但仍然遇到相同的问题。我在drawImages函数中添加了一个debugPrint(url),它肯定看到了新的值/url。看起来ImageView不会重画