Swift tableview图像颜色随短延迟而变化
此问题是此主题的补充: 一切都很好,但有一件小事困扰着我。 结果是: 您可以看到图像的默认颜色为灰色。 如果您选择一行,图像的颜色应该变为白色-它的作品!但是你可以在它改变颜色之前看到短暂的延迟(我希望你明白我的意思) 我可以优化它吗 这是我的代码:Swift tableview图像颜色随短延迟而变化,swift,macos,cocoa,colors,nstableview,Swift,Macos,Cocoa,Colors,Nstableview,此问题是此主题的补充: 一切都很好,但有一件小事困扰着我。 结果是: 您可以看到图像的默认颜色为灰色。 如果您选择一行,图像的颜色应该变为白色-它的作品!但是你可以在它改变颜色之前看到短暂的延迟(我希望你明白我的意思) 我可以优化它吗 这是我的代码: // Change Color of Image func tintedImage(_ image: NSImage, tint: NSColor) -> NSImage { guard let tinted = i
// Change Color of Image
func tintedImage(_ image: NSImage, tint: NSColor) -> NSImage {
guard let tinted = image.copy() as? NSImage else { return image }
tinted.lockFocus()
tint.set()
let imageRect = NSRect(origin: NSZeroPoint, size: image.size)
imageRect.fill(using: .sourceAtop)
tinted.unlockFocus()
return tinted
}
func outlineViewSelectionIsChanging(_ notification: Notification) {
if lastSelectedRow != nil {
let view = myOutlineView.view(atColumn: 0, row: lastSelectedRow!, makeIfNecessary: true) as! CustomCell
view.imgView.image = self.tintedImage(NSImage(named: NSImage.Name(rawValue: "MyImage"))!, tint: NSColor.grey)
}
lastSelectedRow = myOutlineView.selectedRow
}
func outlineView(_ outlineView: NSOutlineView, viewFor tableColumn: NSTableColumn?, item: Any) -> NSView? {
let view = outlineView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "Cell"), owner: self) as? CustomCell
if lastSelectedRow == outlineView.selectedRow {
view?.imgView.image = self.tintedImage(NSImage(named: NSImage.Name(rawValue: "MyImage"))!, tint: NSColor.white)
} else {
view?.imgView.image = self.tintedImage(NSImage(named: NSImage.Name(rawValue: "MyImage"))!, tint: NSColor.grey)
}
return view
}
请为Row的单元格添加代码我在另一个主题中使用了代码,我选择了该主题作为正确答案是的,我理解,但您应该输入代码,以便更好地理解您实际所做的工作,无论如何,这是一个单独的问题好的,我以后再做。请为Row的单元格添加代码。我在另一个主题中使用了代码,我选择了它作为正确的答案。是的,我理解,但你应该添加代码,以便更好地理解你实际做了什么,无论如何,这是一个单独的问题好的,我会在以后做添加您的代码,以更好的清晰度