#ios #swift #save #views #gestures
#iOS #swift #Сохранить #Вид #жесты
Вопрос:
У меня есть пользовательский вид с UIPanGestureRecognizer, UIRotationGestureRecognizer, UIPinchGestureRecognizer
Пользователь может продолжать добавлять эти представления в контроллер представления, используя кнопку добавить.
Весь контроллер представления должен быть сохранен как черновик, чтобы он мог приходить и редактировать свои материалы, когда ему захочется
Я пытался
Метод 1: сохраните это в var и отправьте обратно в предыдущий Viewcontroller и получите его обратно. Но когда пользователь перезапускает приложение, оно исчезает.
Метод 2: я попытался сохранить в UserDefaults.
for let TxtBoxVar as UITextField in self.view.subviews
{
TxtCwtVar =1
let TxtDataVar = NSKeyedArchiver.archivedDataWithRootObject(TxtBoxVar)
DftSdbVal.setObject(TxtDataVar, forKey: "TxtBox(TxtCwtVar)_Key")
}
Но это игнорирует все жесты представления при сохранении. Это означает, что пользователь не может сжимать или перемещать представления после их возврата с помощью метода beow
let TxtCwtVal = DftSdbVal.integerForKey("TxtCwtKey")
for TxtCwtVar in 1...TxtCwtVal
{
if let VyuDtaVar = DftSdbVal.objectForKey("TxtBox(TxtCwtVar)_Key")
{
if let VyuVar = NSKeyedUnarchiver.unarchiveObjectWithData(VyuDtaVar as! NSData) as? UITextField
{
self.view.addSubview(VyuVar)
}
}
}
Есть ли лучший способ сделать это или мы можем сохранить экземпляр альтернативно с помощью жестов?
Комментарии:
1. Не сохраняйте объект UITextField. Сохраняйте необходимую информацию о текстовом поле; это текст, положение и размер. Все остальное, например, распознаватели жестов, можно просто воссоздать по мере необходимости
2. Но я не знаю, сколько там текстовых полей и других полей. пользователь bcoz продолжает добавлять это. Таким образом, сохраняя так много информации с помощью be tuff
3. попробуйте Core Data @SujayUN
4. Не совсем. Вы можете легко сохранить массив объектов с помощью NSKeyedArchiver, и его можно восстановить с помощью NSKeyedUnarchiver, но Core Data — лучший выбор