У меня есть кнопка, которая создает другие кнопки на основе класса Clip, показанного ниже.Эти вновь созданные кнопки добавляются в массив и сохраняются в списке.
class Clip: Encodable, Decodable {
var name: String = ""
var xCoordinate: Int = 100
var yCoordinate: Int = 300
// more parameter will be added later on e.g color, scale etc..
}
Каждая кнопка может перемещаться по виду, а новые координаты x & y сохраняются в листе.
@objc func handlePan(sender: UIPanGestureRecognizer){
let uIViewSelected = sender.view!
switch sender.state {
case .began, .changed :
moveViewWithPan(view: uIViewSelected, sender: sender)
break
case .ended:
//Finds the position when the button is no longer being dragged
let x = Int(uIViewSelected.center.x)
let y = Int(uIViewSelected.center.y)
//clipArray[0] need to be the corresponding clicked button e.g clipArray[2]
clipArray[0].xCoordinate = x
clipArray[0].yCoordinate = y
saveData()
break
default:
break
}
}
Выше работает только если я создаю одну кнопку.Когда добавлено больше кнопок, приведенные выше строки изменяют только первый клип из массива.Мне нужен способ обновить значение до правильного нажатия кнопки.
Как определить позицию массива кнопки нажатия, когда я создаю их все программно?В данный момент я помещаю значение 0 в clipArray.
clipArray[0].xCoordinate = x
clipArray[0].yCoordinate = y
Я даже не уверен, что использование plist - лучший способ сохранить кнопки в первую очередь.
Любая помощь или документация будет высоко ценится.Спасибо