Я относительно не знаком с Swift и iOS, и у меня есть одна проблема. У меня есть собственный класс SwipeCell, который расширяет UITableViewCell. Это ячейка, которая может быть сдвинута влево и вправо и имеет кнопки с каждой стороны. По какой-то причине, если я сделал кнопки из фрейма ячейки, когда пользователь вытащил ячейку, они появятся, но не смогут вызвать действие, поэтому мое решение состояло в том, чтобы сделать ячейку более широкой, чем она есть (поэтому в нее могут входить кнопки). Поскольку это было сделано таким образом, моя ячейка должна иметь смещение по умолчанию для общей ширины кнопок слева (скажем, 100), поэтому это позиция X: -100.deleteRowsAtIndexPaths сбрасывает пользовательские ячейки
И это нормально, и все работает штрафы с клетками, однако есть одна огромная проблема - если я вызываю удаление любой клетки из Tableview как этот
tableView.deleteRowsAtIndexPaths([tableView.indexPathForCell(activeCell)!], withRowAnimation: .None)
Tableview затем удаляет клетки, и все остальные ячейки, которые в настоящее время видны (не происходит с ячейками выше или ниже границ экрана), перемещаются в X: 0 вместо того, чтобы оставаться на X: -100, поэтому я предполагаю, что deleteRowsAtIndexPaths вызывает некоторую функцию, которая сбрасывает видимые ячейки позиции до 0,0. В настоящее время я устанавливаю позиции ярлыков ячеек с layoutSubviews(), поскольку количество кнопок является динамическим и не может быть определено заранее, но layoutSubviews не является функцией, в которой происходит ошибка.
Итак, чтобы подвести итог вопроса - какая функция deleteRowsAtIndexPaths вызывает после удаления ячейки, которая сбрасывает/перерисовывает видимые ячейки?
Не уверен, что вы меня поняли - у меня нет проблем с повторным появлением ячейки, ячейка исчезает, но все остальные ячейки меняются (deleteRowsAtIndexPaths по какой-то причине изменяет свой кадр на один размер, но 0,0 координаты вместо -100,0, где они были). Поэтому проблема заключается в том, что deleteRowsAtIndexPaths на самом деле вызывает какой-то метод или перемещает кадр сам по себе. – n1tr0
Я ответил, что в моей первой строке. Это внутренняя структура iOS. – Abhinav
Я понимаю, что он влияет на удаляемую ячейку и что он перемещает ячейки ниже, но почему это влияет на другие ячейки (например, выше) и почему они будут перемещать их по оси X? Возможно ли, что он не вызывает некоторую функцию, например layoutSubviews, как только это произойдет в элементе UIView (в частности, UITableViewCell)? – n1tr0