Uma imagem vale 1000 palavras, então aqui está uma tela. Como você pode ver, a seção A é a seção atual e há espaço acima dela e eu não entendo o porquê. FWIW. É UISearchResultsTableView (UITableView subclasse) criado por UISearchDisplayController. Este problema aparece, eu acho, depois de alguns alterados no construtor de interface, mas não consigo encontrar o que exatamente. Parece que o espaço é da mesma altura que a barra de navegação. Por padrão, as visualizações do UITableViewController são automaticamente inseridas no iOS 7 para que elas não começem abaixo da barra de barristras de navegação. Isso é controlador pela configuração Ajustar inserções de exibição de rolagem na guia Inspetor de Atributos do UITableViewController no Builder de Interface, ou pelo método setAutomaticallyAdjustsScrollViewInsets: de UIViewController. Para um conteúdo do UIViewController s, se você não quiser que os conteúdos das vistas se estendam sob as barras topbottom, você pode usar as configurações Extend Edges Under TopUsUnder Bottom Bars em Interface Builder. Isso é acessível através da propriedade edgeForExtendedLayout. Sunday 14 de setembro de 2017 Seções Aninhadas no UITableView Às vezes, pode haver casos em que você deseja exibir seções aninhadas em um UITableView. Por exemplo, considere um aplicativo que organiza grupos de forma taxonômica, por isso A UITableView realmente não foi projetado para mostrar mais de dois níveis de hierarquia, como seções e linhas. Se você quer mostrar mais de dois níveis, uma abordagem detalhada usada na maioria dos aplicativos iOS, onde tocar uma linha apresenta outro UITableView na pilha de navegação. Mas esta é a única (ou a melhor opção). Na verdade, não é. Para um projeto em que eu trabalhei recentemente, fazer dois níveis de heirarquia na mesma visão de tabela foi a melhor maneira, então eu coloco meus olhos em construir isso manualmente. Quando acabou, não funcionou demais. O truque era ter dois tipos de linhas na vista da tabela. Um para representar o segundo nível de seções e outro para representar as linhas normais na exibição de tabela. Digamos que você tenha uma matriz de dois níveis (digamos, seções) para representar os itens na sua exibição de tabela. Por exemplo, aqui está a representação que você tem para a tabela acima. O número total de seções que temos é apenas o número de seções de nível superior. O número de linhas em cada seção de nível superior seria o número de subseções o número de linhas em cada subseção. Agora, tudo o que precisamos pensar é como criar as linhas para a exibição da tabela. Configure dois protótipos no storyboard com diferentes identificadores de reutilização, um para o cabeçalho da seção e outro para o item da linha e instanciar o correto com base no índice solicitado no método da fonte de dados. Demora um pouco de trabalho, mas quando ele sai, parece incrível. Muito melhor do que apresentar duas visualizações de mesa com detalhamento. Pontos de bônus para substituir scrollViewDidScroll: para imitar o comportamento flutuante dos cabeçalhos da subseção. Eu acho que está ficando um pouco demais para aceitar uma publicação, então deixo isso para você descobrir. Se precisar de ajuda para configurar isso, sinta-se à vontade para me enviar um e-mail. Sapan Diwakar Desenvolvedor móvel e web. Viajante. Compartilhe esta postagem
No comments:
Post a Comment