Monotouch: MT.Dialog прокрутить вниз?

У меня есть MT.Dialog, куда я добавляю некоторую информацию журнала.

Ряды могут быть разной высоты.

Как я могу убедиться, что мой MT.Dialog всегда прокручивается вниз, чтобы всегда была видна вся последняя строка?

НО.... если пользователь прокручивает список вверх, он не должен прокручиваться вниз при добавлении новых строк.

Какие-либо предложения?

Спасибо! Моджо


person MojoDK    schedule 29.12.2011    source источник


Ответы (1)


Хм, не зная больше о вашей реализации или структуре корневого элемента, я могу только предположить, что это только верхний уровень, а не вложенный. Что, как говорится....

var lastIndexPath = this.Root.Last()[this.Root.Last().Count-1].IndexPath;
this.TableView.ScrollToRow(lastIndexPath, UITableViewScrollPosition.Middle, true);

... вы можете просто захватить indexPath последней строки в массиве, захватить его индексный путь и программно прокрутить табличное представление до него.

К вашему сведению, код для получения indexPath не тестировался, но должен работать нормально. Убедитесь, что в верхней части вашего класса определено следующее :-)

using System.Linq;
person Anuj    schedule 29.12.2011
comment
Большое спасибо! ... Теперь мне нужно только выяснить, видна ли последняя строка, прежде чем запускать ваш код. Если пользователь прокручивает список вверх, он не должен отображать последнюю строку. Любая идея? - person MojoDK; 30.12.2011
comment
Краткий ответ: подкласс Element, переопределение GetCell, добавление состояния для ScrolledToBottom и выполнение управления состоянием в GetCell. - person Anuj; 30.12.2011