ОБНОВЛЕНИЕ
Я знаю, в чем причина этого странного нарушения макета. Это настройка аксессуара (UITableViewCellAccessory). Если я перестану указывать аксессуар, макет не сломается. Я не добавил это в качестве ответа, потому что для ответа потребуется решение, которое дает мне аксессуар без нарушения макета
Большинство проблем, которые я вижу у людей с пользовательскими ячейками динамической высоты, заключаются в том, что они не имеют правильной высоты, пока они не будут повернуты. Однако я вижу обратное: все ячейки имеют высоту, допустимую для их динамического содержимого. Прокрутка вверх и вниз не нарушает этого. Однако, если я прокручу до конца списка, затем поверну устройство, а затем поверну назад, одна строка станет в 0,5–1,5 раза больше высоты экрана.
Дальнейшее вращение или дальнейшая прокрутка вернут строки к ожидаемой высоте. Я включил пару скриншотов до и после
UITableView определяется следующим образом
this.rootChildrenTable = new UITableView()
{
TranslatesAutoresizingMaskIntoConstraints = false,
AccessibilityIdentifier = "rootChildrenTable",
RowHeight = UITableView.AutomaticDimension,
EstimatedRowHeight = 44.0f,
BackgroundColor = UIColor.GroupTableViewBackgroundColor,
TableFooterView = new UIView(),
TableHeaderView = this.searchBar,
KeyboardDismissMode = UIScrollViewKeyboardDismissMode.OnDrag
};
Обратите внимание, что обычные подозреваемые установлены RowHeight
и EstimatedRowHeight
. Как только я удаляю Lines = 0
из метки, делая все строки одинаковой высоты, проблема исчезает.
Любая идея, на что еще я должен смотреть?
beginUpdate
иendUpdate
, чтобы обновить высоту ячейки. - person Tj3n   schedule 13.09.2016UITableViewController
илиUITableView
внутриUIViewController
? - person farzadshbfn   schedule 24.09.2016