Альтернатива UITableView.Begin / EndUpdates - PullRequest
0 голосов
/ 22 октября 2018

У нас есть собственный элемент диалога MonoTouch (MT D), который мы хотим расширить при вводе в него.

Мы столкнулись с общей проблемой MT D, когда высота не пересчитывалась.Распространенным решением для этого является вызов

this.GetContainerTableView().BeginUpdates();
this.GetContainerTableView().EndUpdates();

Stack OverFlow Question

Monotouch: заставить UITableView пересчитать высоту каждой ячейки без перезагрузки данных

Это всегда хорошо работало для нас, даже если оно пахло HACK.Однако пользователь сообщает о проблеме на своем iPhone X, которая означает, что весь контейнер MT D (UITableView) прокручивается каждый раз, что вызывает скачок экрана.

Я попытался временно отключить прокрутку на элементе.Контейнер и непосредственный RootElement, но это не имело никакого значения.

Может кто-нибудь предложить что-нибудь, чтобы остановить прыжки?

1 Ответ

0 голосов
/ 22 октября 2018

Я пытался установить положение прокрутки обратно к значениям до Begin и EndUpdates, но получал исключения, пытаясь перехватить событие прокрутки

UIKit.UIApplication.EnsureEventAndDelegateAreNotMismatched 

Однако это предложение сбрасывает без использования события прокрутки.Спасибо, Кайл Шенк

http://www.kyleshank.com/2015/12/05/prevent-uitableview-from-scrolling-during-updates.html

Примечание: я потратил несколько часов, пытаясь выбраться из этой проблемы, прежде чем отправлять сообщения в SO.При написании вопроса я нашел решение Kyke Shank, но решил, что нам всем было бы лучше, если бы я все еще писал в качестве вопроса и последующего ответа.

...