MonoTouch Dialog StringElements Переменная высота ячейки - PullRequest
6 голосов
/ 11 ноября 2011

У меня проблема с переопределением метода GetHeight при разработке приложения для iPad с MonoTouch.Dialog.Я реализую IElementSizing, но мой GetHeight метод никогда не вызывается.

Кто-нибудь еще сталкивался с этой проблемой?Спасибо.

Я убедился, что мой root.UnevenRows = true;

Я также попытался включить проект диалога и поместить точку останова в GetHeight () для любого из элементов, которые реализуют IElementSizing снеудачно.В предыдущем проекте iPhone это работало нормально, но на iPad я все еще застрял.Есть ли еще какие-то «ошибки», которые я мог бы пропустить?

1 Ответ

10 голосов
/ 12 ноября 2011

Это своего рода ошибка в MonoTouch.Dialog. По сути, когда вы назначаете корневой элемент, он хочет знать, есть ли неровные строки, чтобы он мог создавать и кэшировать соответствующий объект UITableViewSource.

Однако, если вы добавляете разделы с элементами, которые реализуют IElementSizing, к элементу Root после того, как объект Source уже создан. Тогда он не будет вызывать переопределение GetHeight. Примером этого является случай, когда вы извлекаете данные асинхронно и с помощью обратного вызова и добавляете результирующие разделы / элементы в RootElement ... или, по существу, каждый раз, когда добавляете разделы / элементы после вызова PrepareRoot ().

Для этого есть простой обходной путь:

this.Root.UnevenRows = true;

Однако, не глядя на ваш код, я не могу сказать, является ли это ошибкой, которую вы видите.

...