2011-11-11 10 views
6

Tengo un problema al reemplazar el método GetHeight al desarrollar una aplicación para iPad con MonoTouch.Dialog. Estoy implementando IElementSizing pero mi método GetHeight nunca se llama.MonoTouch Dialog StringElements Altura de celda variable

¿Alguien más ha tenido este problema? Gracias.

Me aseguré de que mi root.UnevenRows = true;

También traté de incluir el proyecto de diálogo y colocar un punto de interrupción en el GetHeight() para cualquiera de los Elementos que implementan IElementSizing sin suerte. En un proyecto anterior de iPhone, funcionó bien, pero en el iPad todavía estoy atascado. ¿Hay algún otro 'truco' que me podría estar perdiendo?

Respuesta

10

Esto es una especie de error en MonoTouch.Dialog. Básicamente, cuando asigna el elemento raíz, quiere saber si hay filas desiguales para que pueda crear y almacenar en caché el objeto UITableViewSource apropiado.

Sin embargo, si agrega Secciones con Elementos que implementan IElementSizing en el elemento raíz después de que el objeto Fuente ya se haya creado. Entonces no llamará a su anulación de GetHeight. Un ejemplo de esto es si obtiene datos asincrónicos y de devolución de llamada y agrega las Secciones/Elementos resultantes a RootElement ... o esencialmente cada vez que agrega Secciones/Elementos después de llamar a PrepareRoot().

Hay una solución simple para esto:

this.Root.UnevenRows = true; 

Sin mirar a su código sin embargo, no puedo decir si este es el error que está viendo.

Cuestiones relacionadas