Uitableview lignes de séparation cellulaire horizontale ne défile pas vers le haut ou vers le bas

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

  •  20-09-2019
  •  | 
  •  

Question

J'ai écrit un code MonoTouch pour afficher une UITableView Nib'less et la vue semble correct avec des données cellulaires sur l'affichage initial. Cependant, lorsque je touche défiler vers le bas pour afficher plus d'informations Je retrouve avec un sabot à double grille comprenant des lignes de séparation de cellules horizontales statiques qui ne se déplacent pas avec l'action de défilement plus un autre ensemble ou des lignes de séparation de cellules horizontales qui sont espacées correctement et qui se déplacent avec le défilement vers le bas l'action.

Après avoir fait défiler en arrière jusqu'au sommet de la vue de la table, les lignes horizontales statiques et dynamiques se synchronisent parfaitement et l'écran semble normal. En outre le défilement reconstitue le problème.

Je suis en utilisant des objets par défaut UITableViewCell pour remplir les lignes de la table.

Je l'ai sans doute pas configurer quelque chose qui serait Interface Builder de la version normale. Des idées? Espérons que les gens Objective-C seront en mesure d'interpréter le code .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: me concerne le jeu supplémentaire de lignes de séparation de cellules horizontales saignaient par le biais de la vue précédente rendue dans la pile de commande de navigation. Donc, je réorganisées l'application pour rendre la table problématique la première vue affichée sur l'application de démarrage, mais le problème demeure.

Mise à jour 2: Ajouté

tableView.SeparatorStyle = UITableViewCellSeparatorStyle.None;

Cela permet d'éviter le double jeu de lignes horizontales, mais je suis toujours à gauche avec les statiques qui se croisent horizontals au milieu des cellules comme les rouleaux de vue de la table.

Mise à jour 3: une théorie vague c'est quelque chose à voir avec un décalage de configuration de la hauteur des cellules ou remplissage de fond problème et ainsi les lignes horizontales peuvent représenter des pixels non peintes à la vue du tableau. Je ne sais pas comment tester cette théorie?

Était-ce utile?

La solution

Solution trouvée. L'exemple de code ci-dessus a été adopté à partir d'une partie 3 exemple d'application MonoTouch dans le blogshere. Ce code semble être la création de deux UITableViews entièrement superposées et que les lignes de la grille statique étaient probablement du UITableView vide et plus profond dans l'ordre z qui ne répondait pas à tous les gestes de défilement tactile.

Il n'y a pas besoin d'instancier manuellement un objet UITableView comme indiqué ci-dessus parce que la classe UITableViewController fait pour nous, l'appel addSubview () est superflu.

Voici le code qui fonctionne pour moi:

public override void ViewDidLoad ()
{
    base.ViewDidLoad ();
    this.TableView.Source = new TableSource();
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top