我正在创建带有“ X”作为关闭/关闭按钮的涂鸦页面。 我还有一个“清除”按钮,可删除已制作的涂鸦。
我的问题是,当我按清除键时,即使X按钮消失了,如何防止这种情况发生?
这是我当前的应用。
这是我的Doodle课程,可让我在视图上绘画。
import UIKit
class DoodleView: UIView {
var lineColor:UIColor!
var lineWidth:CGFloat!
var path:UIBezierPath!
var touchPoint:CGPoint!
var startingPoint:CGPoint!
override func layoutSubviews() {
self.clipsToBounds = true
self.isMultipleTouchEnabled = false
lineColor = UIColor.white
lineWidth = 10
}
override func touchesBegan(_ touches: Set<UITouch>,with event: UIEvent?) {
let touch = touches.first
startingPoint = touch?.location(in: self)
}
override func touchesmoved(_ touches: Set<UITouch>,with event: UIEvent?) {
let touch = touches.first
touchPoint = touch?.location(in: self)
path = UIBezierPath()
path.move(to: startingPoint)
path.addLine(to: touchPoint)
startingPoint = touchPoint
drawShapelayer()
}
func drawShapelayer() {
let shapelayer = CAShapelayer()
shapelayer.path = path.cgPath
shapelayer.strokeColor = lineColor.cgColor
shapelayer.lineWidth = lineWidth
shapelayer.fillColor = UIColor.clear.cgColor
self.layer.addSublayer(shapelayer)
self.setNeedsDisplay()
}
func clearCanvas() {
path.removeAllPoints()
self.layer.sublayers = nil
self.setNeedsDisplay()
}
}
这是控制视图控制器的类。
import UIKit
class DoodlePageViewController: UIViewController {
@IBOutlet weak var doodleView: DoodleView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBaction func clearDoodle(_ sender: Any) {
doodleView.clearCanvas()
}
@IBaction func CloseDoodlePage(_ sender: Any) {
dismiss(animated: true,completion: nil)
}
}