Мне нужно создать функциональность отмены и повторно, используя Swift Undomanager в моем приложении для краски. Я сделал это снятие с удалением последнего выъезда из массива. Но я хочу использовать Undomanager. И если есть некоторые советы, может быть, я делаю что -то не так. Если кто -то может мне помочь, пожалуйста. < /P>
final class WACanvas: UIView {
private var lines = [WALine]()
private var strokeColor = UIColor.black
private var strokeWidth: Float = 1
override func draw(_ rect: CGRect) {
super.draw(rect)
guard let context = UIGraphicsGetCurrentContext() else { return }
lines.forEach { line in
guard line.points.count > 1 else { return }
print(line.points)
context.setStrokeColor(line.color.cgColor)
context.setLineWidth(CGFloat(line.width))
context.setLineCap(.round)
context.move(to: line.points.first!)
context.addLines(between: line.points)
context.strokePath()
}
}
override func touchesBegan(_ touches: Set, with event: UIEvent?) {
lines.append(WALine(color: strokeColor, width: strokeWidth, points: []))
}
override func touchesMoved(_ touches: Set, with event: UIEvent?) {
guard let point = touches.first?.location(in: self) else { return }
guard var lastLine = lines.popLast() else { return }
lastLine.points.append(point)
lines.append(lastLine)
setNeedsDisplay()
}
// MARK: - Public methods
public func undo() {
_ = lines.popLast()
setNeedsDisplay()
}
public func clear() {
lines.removeAll()
setNeedsDisplay()
}
public func setSTrokeColor(color: UIColor) {
self.strokeColor = color
}
public func setSTroke(width: Float) {
self.strokeWidth = width
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... -functions
Как я могу реализовать функции Undomanager и сделать функции Undo (), Redo ()? [закрыто] ⇐ IOS
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я могу реализовать функции Undomanager и сделать функции Undo (), Redo ()?
Anonymous » » в форуме IOS - 0 Ответы
- 1 Просмотры
-
Последнее сообщение Anonymous
-
-
-
SwiftUI: реализация Redo с помощью UndoManager без предупреждений о закрытии Sendable
Anonymous » » в форуме IOS - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-