UabableView Linhas de separador de células horizontais não rola para cima ou para baixo

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

  •  20-09-2019
  •  | 
  •  

Pergunta

Eu escrevi um código Monotouch para exibir uma visualização UAable sem pontilhas e a visualização parece bem preenchida com dados de células na exibição inicial. No entanto, quando toquei na rolagem para baixo para ver mais dados, acabo com um pedaço de grade dupla, composto por linhas de separador de células horizontais estáticas que não se movem com a ação de rolagem mais outro conjunto ou linhas de separador de células horizontais que são espaçadas corretamente e que se movem com a ação de rolagem para baixo.

Depois de rolar de volta para o topo da exibição da tabela, as horizontais estáticas e dinâmicas sincronizam perfeitamente e a tela parece normal. A rolagem ainda mais recria o problema.

Estou usando objetos padrão uitableViewCell para preencher as linhas da tabela.

Provavelmente não consegui configurar algo que o Builder de Interface faria. Alguma ideia? Esperançosamente, o pessoal do Objective-C pode interpretar o 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 );

ATUALIZAÇÃO 1: Eu estava preocupado que o conjunto extra de linhas de separador de células horizontais estava sangrando da visão anterior renderizada na pilha do controlador de navegação. Por isso, reordenei o aplicativo para tornar a tabela problemática a primeira exibição exibida na inicialização do aplicativo, mas o problema permaneceu.

Atualização 2: Adicionado

tableView.SeparatorStyle = UITableViewCellSeparatorStyle.None;

Isso evita o conjunto duplo de linhas horizontais, mas ainda fico com os horizontais estáticos que se cruzam pelo meio das células como a tabela Visualiza rola.

ATUALIZAÇÃO 3: Tenha uma teoria vaga, isso tem algo a ver com uma incompatibilidade de configuração de altura da célula ou um problema de preenchimento de fundo e, portanto, as linhas horizontais podem representar pixels não pintados na exibição da tabela. Não tenho certeza de como testar essa teoria?

Foi útil?

Solução

Solução encontrada. O exemplo de código acima foi adotado em um aplicativo de amostra de Monotouch de terceiros no blogshere. Esse código parece estar criando duas visualizações uable totalmente sobrepostas e as linhas de grade estática provavelmente foram da View Viaitável e mais profunda na ordem Z que não respondeu a nenhum gesto de rolagem de toque.

Não há necessidade de instanciar manualmente um objeto UitableView, como mostrado acima, porque a classe UAableViewController faz isso por nós; portanto, a chamada addSubView () é supérflua.

Aqui está o código que funciona para mim:

public override void ViewDidLoad ()
{
    base.ViewDidLoad ();
    this.TableView.Source = new TableSource();
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top