Проблема Я хочу разрешить пользователям нажимать «своп» в ячейке таблицы и затем находить другой объект Realm, чтобы заполнить 2 текстовые метки (для имени упражнения и числа повторений) в ячейке с помощьюзначения из нового объекта.
Исследования Существует довольно много (по общему признанию, старых) "движущихся строк" (например, здесь Как поменять две пользовательских ячейки друг с другом в табличном представлении? ), а также здесь ( UITableView подкачки ячеек ), а затем очевидно, что многое перезагружает данные само по себе, но я ничего не могу найти в этом случае использования.
Что я пробовал мой код ниже отлично работает для получения нового объекта.то есть в ячейке есть некоторые данные, а затем, когда вы нажимаете кнопку «swapButton», она получает еще одну, готовую для вставки в tableView.Я знаю, как перезагрузить данные в целом, но не внутри одной конкретной ячейки in situ (ячейка, к которой принадлежит определенная кнопка обмена ... в каждой ячейке есть «кнопка обмена»).
Полагаю, мне нужнокаким-то образом найти indexRow 'swapButton' и затем получить доступ к свойствам ячейки этой конкретной ячейки, но не уверен, с чего начать (я поиграл с несколькими вариантами, но я просто догадываюсь, так что это не работает!)
class WorkoutCell : UITableViewCell {
@IBOutlet weak var exerciseName: UILabel!
@IBOutlet weak var repsNumber: UILabel!
@IBAction func swapButtonPressed(_ sender: Any) {
swapExercise()
}
func swapExercise() {
let realmExercisePool = realm.objects(ExerciseGeneratorObject.self)
func generateExercise() -> WorkoutExercise {
let index = Int(arc4random_uniform(UInt32(realmExercisePool.count)))
return realmExercisePool[index].generateExercise()
}
}
//do something here like cell.workoutName
//= swapExercise[indexRow].generateExercise().name???
}