我正在尝试为我的简单绘图应用程序清除绘图画布。我创建了一个按钮,通过将
UIImageView.image
查看为零来删除图像。然而,按下按钮时什么也没有发生。
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)。无论您之后如何处理图像都没有关系,因为该图像不是您视图的一部分。您的视图是 smoothlineView,而不是 mainDrawingCanvas。
要删除/删除图像(我假设是 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方法中的清除操作。