Я сталкиваюсь с тремя проблемами в моей текущей реализации переупорядочения ячеек таблицы.
Я применяю тени к представлению оболочки внутри представления содержимого ячейки табличного представления. Чтобы заставить ячейку работать для переупорядочения, нажимая где-либо в ячейке, я использую этот блок кода.
weak var reorderControl: UIView?
override func setEditing(_ editing: Bool, animated: Bool) {
super.setEditing(editing, animated: false)
if !editing || reorderControl != nil {
return
}
// Find the reorder control in the cell's subviews.
for view in subviews {
let className = String(describing: type(of: view))
if className == "UITableViewCellReorderControl" {
// Remove its subviews so that they don't mess up your own content's appearance.
for subview in view.subviews {
subview.removeFromSuperview()
}
// Keep a weak reference to it for
layoutSubviews () .
reorderControl = view
break
}
}
}
со стилем редактирования, установленным на .none, и shouldIndentWhileEditingRowAt, установленным в false в представлении таблицы.
Вид оболочки имеет поля со всех сторон, чтобы тень хорошо отображалась.
Когда я нажимаю на ячейку, чтобы изменить порядок, дизайн становится плохим из-за этого
к этому, где вы можете увидеть, что происходит с вариантом 1.
Я действительно понятия не имею, как это происходит.
- Видно, что с правой стороны окна оболочки появляется дополнительное пространство. это определенно пространство для управления переупорядочением, которое можно увидеть при проверке вида.
Я не хочу, чтобы это пространство появлялось. Как мне это решить?
- Индексы здесь (1,2,3) находятся здесь в другой таблице, которые сидят там вхолостую, а параметры на изображении - в другом виде таблицы. На данный момент ячейки в обоих представлениях имеют высоту 60. Но если я хочу, чтобы высота ячейки во втором табличном представлении увеличивалась в соответствии с содержимым текста метки, как я могу отрегулировать размер ячейки в табличном представлении индекса так, чтобы что индексы совпадают с параметрами.
Буду очень признателен, если вы поможете мне решить эту проблему.
У меня нет практики задавать вопросы здесь. извините, если я не могу выразить здесь все хорошо.