#c# #ios #ipad #xamarin.ios #monotouch.dialog
#c# #iOS #iPad #xamarin.ios #monotouch.dialog
Вопрос:
У меня возникла проблема с переопределением GetHeight
метода при разработке приложения для iPad с MonoTouch.Диалоговое окно. Я внедряю, IElementSizing
но мой GetHeight
метод никогда не вызывается.
Кто-нибудь еще сталкивался с этой проблемой? Спасибо.
Я убедился, что мой root.Неравномерные ряды = true;
Я также пытался включить dialog project и поместить точку останова в getHeight() для любого из элементов, которые реализуют IElementSizing, но безуспешно. В предыдущем проекте для iPhone это работало нормально, но на iPad я все еще застрял. Есть ли какие-либо другие «подводные камни», которые я мог упустить?
Ответ №1:
Это своего рода ошибка в MonoTouch.Диалоговое окно. По сути, когда вы назначаете корневой элемент, он хочет знать, есть ли неравномерные строки, чтобы он мог создать и кэшировать соответствующий объект UITableViewSource.
Однако, если вы добавите разделы с элементами, которые реализуют IElementSizing, к корневому элементу после того, как исходный объект уже создан. Тогда это не вызовет переопределение getHeight. Примером этого может служить асинхронная выборка данных и обратный вызов и добавление результирующих разделов / элементов в rootElement … или, по сути, в любое время, когда вы добавляете разделы / элементы после вызова PrepareRoot().
Для этого есть простой обходной путь:
this.Root.UnevenRows = true;
Однако, не глядя на ваш код, я не могу сказать, является ли это ошибкой, которую вы видите.