将 UIImageView 设置为 nil
Setting UIImageView to nil
我正在尝试为我的简单绘图应用清除绘图 canvas。我创建了一个按钮,通过将 UIImageView.image
设为 nil 来删除图像。但是,按下按钮时没有任何反应。
ViewController代码:
import UIKit
var smoothLineView : SmoothLineView = SmoothLineView()
class ViewController: UIViewController {
@IBOutlet weak var mainDrawingCanvas: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
smoothLineView = SmoothLineView(frame: mainDrawingCanvas.bounds)
self.view.addSubview(smoothLineView)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func deleteCurrentCanvas(sender: AnyObject) {
mainDrawingCanvas.image = nil
}
}
还可以找到完整的项目:https://github.com/BananaSplitio/OpenSketch
不太确定您要在这里做什么。但是,这就是我认为正在发生的事情。
您似乎只是使用图像 (mainDrawingCanvas) 的边界来创建另一个视图 (smoothlineView)。不管你之后对图像做什么都没有关系,因为图像不是你视图的一部分。你的view是smoothlineView,不是mainDrawingCanvas。
到remove/delete图像(我假设是smoothlineView),尝试这样做,它应该工作。
import UIKit
var smoothLineView : SmoothLineView = SmoothLineView()
class ViewController: UIViewController {
@IBOutlet weak var mainDrawingCanvas: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
smoothLineView = SmoothLineView(frame: mainDrawingCanvas.bounds)
self.view.addSubview(smoothLineView)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func deleteCurrentCanvas(sender: AnyObject) {
smoothLineView.removeFromSuperview()
}
}
您将 smoothLineView 添加到 self.view,然后该按钮将不会接收事件。将 smoothLineView 设置为蓝色,你就会明白为什么它不起作用。
需要做一个按钮的IBOutlet,在addsubview smoothLineView后添加如下代码,
self.view.bringSubviewToFront(button)
那么您需要删除您忘记删除的按钮的一些 IBAction。
之后,你需要在deleteCurrentCanvas方法中更改你的清除操作。
我正在尝试为我的简单绘图应用清除绘图 canvas。我创建了一个按钮,通过将 UIImageView.image
设为 nil 来删除图像。但是,按下按钮时没有任何反应。
ViewController代码:
import UIKit
var smoothLineView : SmoothLineView = SmoothLineView()
class ViewController: UIViewController {
@IBOutlet weak var mainDrawingCanvas: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
smoothLineView = SmoothLineView(frame: mainDrawingCanvas.bounds)
self.view.addSubview(smoothLineView)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func deleteCurrentCanvas(sender: AnyObject) {
mainDrawingCanvas.image = nil
}
}
还可以找到完整的项目:https://github.com/BananaSplitio/OpenSketch
不太确定您要在这里做什么。但是,这就是我认为正在发生的事情。
您似乎只是使用图像 (mainDrawingCanvas) 的边界来创建另一个视图 (smoothlineView)。不管你之后对图像做什么都没有关系,因为图像不是你视图的一部分。你的view是smoothlineView,不是mainDrawingCanvas。
到remove/delete图像(我假设是smoothlineView),尝试这样做,它应该工作。
import UIKit
var smoothLineView : SmoothLineView = SmoothLineView()
class ViewController: UIViewController {
@IBOutlet weak var mainDrawingCanvas: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
smoothLineView = SmoothLineView(frame: mainDrawingCanvas.bounds)
self.view.addSubview(smoothLineView)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func deleteCurrentCanvas(sender: AnyObject) {
smoothLineView.removeFromSuperview()
}
}
您将 smoothLineView 添加到 self.view,然后该按钮将不会接收事件。将 smoothLineView 设置为蓝色,你就会明白为什么它不起作用。
需要做一个按钮的IBOutlet,在addsubview smoothLineView后添加如下代码,
self.view.bringSubviewToFront(button)
那么您需要删除您忘记删除的按钮的一些 IBAction。 之后,你需要在deleteCurrentCanvas方法中更改你的清除操作。