Как я могу реализовать функции Undomanager и сделать функции Undo (), Redo ()?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу реализовать функции Undomanager и сделать функции Undo (), Redo ()?

Сообщение Anonymous »

Мне нужно создать функциональность отмены и повторно, используя 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как я могу реализовать функции Undomanager и сделать функции Undo (), Redo ()? [закрыто]
    Anonymous » » в форуме IOS
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • SwiftUI: реализация Redo с помощью UndoManager без предупреждений о закрытии Sendable
    Anonymous » » в форуме IOS
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Майя. Апи. Open-maya Undo/Redo Souchion
    Anonymous » » в форуме Python
    0 Ответы
    68 Просмотры
    Последнее сообщение Anonymous
  • Неправильный «этот» контекст в моей функции redo
    Anonymous » » в форуме Javascript
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как поддерживать функциональность Ctrl+z (undo) после манипулирования вставленным или сброшенным текстом в довольном Div
    Anonymous » » в форуме Javascript
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»