Swift OSX新增:NSImageView使用drawInRect绘制多幅图像-Can';更新图像
请原谅我的无知。。我是斯威夫特的新手,我正在努力解决这个问题 我有一个自定义NSImageView(称为“AdFrame”),它在NSRects中绘制两个图像。当用户输入某个数字时,我希望底部图像发生变化 加载默认图像时(启动应用程序时),它绘制得很好,但不会使用新图像更新 以下是NSImageView类中的函数(drawImages):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 =
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不会重画