UITableView líneas de separación de células horizontales no se desplazan hacia arriba o hacia abajo

StackOverflow https://stackoverflow.com/questions/1919166

  •  20-09-2019
  •  | 
  •  

Pregunta

He escrito algo de código para mostrar una MonoTouch Nib'less UITableView y la vista se ve bien poblada con datos de la celda en la pantalla inicial. Sin embargo cuando toco desplazarse hacia abajo para ver más datos termino con un Patten rejilla doble que comprende de líneas de separación de células horizontales estáticos que no se mueven con la acción de desplazamiento además de otro conjunto o líneas de separación de células horizontales que están espaciados correctamente y que se mueven con la acción de desplazamiento hacia abajo.

Después de desplazarse de nuevo hasta la parte superior de la vista de tabla, las horizontales estáticas y dinámicas se sincronizan a la perfección y la pantalla se ve normal. Además desplazamiento recrea el problema.

Estoy utilizando objetos UITableViewCell por defecto para poblar las filas de la tabla.

Probablemente he podido configurar algo que el Interface Builder haría normal. ¿Algunas ideas? Con suerte la gente de Objective-C serán capaces de interpretar el código .Net.

public override void ViewDidLoad ()
{
    base.ViewDidLoad ();

    _tableView = new UITableView()
    {
        Source = new TableSource(),
        AutoresizingMask = UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleWidth,
        BackgroundColor = UIColor.White
    };
    _tableView.SizeToFit();
    _tableView.Frame = new RectangleF ( 0, 0, this.View.Frame.Width, this.View.Frame.Height );
    this.View.AddSubview( _tableView );

Update 1: Estaba preocupado el conjunto adicional de líneas de separación de células horizontales se sangra a través de la vista anterior mostrada en la pila de control de navegación. Así que reordenado la aplicación para que la mesa problemática la primera vista aparece en aplicación de puesta en marcha, pero el problema sigue.

Actualización 2: Agregado

tableView.SeparatorStyle = UITableViewCellSeparatorStyle.None;

Esto evita el doble juego de líneas horizontales pero todavía me quedo con las horizontales estáticas que se cruzan por el medio de las células como la vista de tabla rollos.

Actualización 3: Tener una vaga teoría esto es algo que ver con una falta de coincidencia de configuración altura de la celda o el fondo llenar tema y para que las líneas horizontales representada por los píxeles sin pintar en la vista de tabla. No estoy seguro de cómo poner a prueba esta teoría?

¿Fue útil?

Solución

Solución encontrado. El ejemplo de código anterior había sido adoptado de una aplicación de ejemplo MonoTouch tercera parte en el blogshere. Ese código parece estar creando dos UITableViews totalmente solapados y las líneas de la cuadrícula estáticas eran probablemente de la UITableView vacía y más profundo en el orden z que no responde a ningún toque gestos de desplazamiento.

No hay necesidad de crear una instancia de un objeto de forma manual UITableView como se muestra arriba porque la clase UITableViewController hace esto por nosotros, por lo que el () llamada addSubview es superflua.

Este es el código que funciona para mí:

public override void ViewDidLoad ()
{
    base.ViewDidLoad ();
    this.TableView.Source = new TableSource();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top