Construtor de interface (iOS 9+)
Basta arrastar um UIView para a tabela. No storyboard, ele fica na parte superior abaixo das células personalizadas. Você pode preferir chamá-lo de "rodapé".
Aqui é mostrado em verde para maior clareza, você provavelmente desejaria cores claras.
Observe que, ajustando a altura, você pode afetar como o "salto inferior" da tabela é tratado, como preferir. (A altura zero geralmente é boa).
Para fazer isso programaticamente:
Rápido
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.tableFooterView = UIView()
}
Objetivo-C
iOS 6.1 ou superior
- (void)viewDidLoad
{
[super viewDidLoad];
// This will remove extra separators from tableview
self.tableView.tableFooterView = [UIView new];
}
ou se você preferir,
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
Historicamente no iOS:
Adicionar ao controlador de exibição de tabela ...
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
// This will create a "invisible" footer
return CGFLOAT_MIN;
}
e se necessário ...
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
return [UIView new];
// If you are not using ARC:
// return [[UIView new] autorelease];
}
tableFooterView
deixa um separador na última célula da linha, pois a tabela ainda antecipa o conteúdo abaixo dessa célula. Usar o caminho histórico eliminará o último separador e parecerá melhor em geral.Aqui está outra maneira de fazer isso sem o estilo de tabela agrupada, e uma que você provavelmente não adivinharia. A adição de
um cabeçalho erodapé à tabela(talvez um ou outro seja suficiente, não foi verificado)faz com que os separadores desapareçam das linhas de preenchimento / em branco.Eu me deparei com isso porque queria um pouco de espaço na parte superior e inferior das mesas para diminuir o risco de pressionar os botões em vez de uma célula da mesa com dedos carnudos. Aqui está um método para inserir uma exibição em branco como cabeçalho e rodapé. Use a altura que desejar, mas você ainda elimina as linhas separadoras extras.
Em resposta ao @Casebash, voltei ao código no meu aplicativo (Gerenciador de listas "AcmeLists" na loja iTunes ...) e coloquei um curto-circuito no método addHeaderAndFooter para verificar. Sem ele , tenho os separadores de linha extras; com o código, eu tenho o que você vê nesta janela: não há imagem dos separadores de linhas da tabela . Portanto, não sei por que não teria funcionado para você. Além disso, faz sentido para mim que ter qualquer rodapé personalizado em uma exibição de tabela necessariamente precise parar de desenhar separadores de linhas para linhas em branco abaixo dele. Isso seria horrível. Para referência, observei as tabelas em que havia mais linhas do que as que podiam ser exibidas na tela e, em seguida, uma tabela com duas linhas. Nos dois casos, não há separadores estranhos.
Talvez suas visualizações personalizadas não tenham sido realmente adicionadas. Para verificar isso, defina a cor do plano de fundo para algo diferente de
clearColor
, por exemplo[UIColor redColor]
,. Se você não encontrar algumas barras vermelhas na parte inferior da mesa, seu rodapé não estava definido.fonte
Removendo linhas separadoras extras para linhas vazias no UITableView no Swift
fonte
Gostaria de estender a resposta wkw :
Simplesmente adicionar apenas rodapé com altura 0 fará o truque. (testado no sdk 4.2, 4.4.1)
ou ainda mais simples - onde você configura sua tableview, adicione esta linha:
ou ainda mais simples - para simplesmente remover qualquer separador:
Graças a wkw novamente :)
fonte
Para iOS 7 ou superior, usando Storyboards
Basta arrastar um
UIView
para o seuUITableView
como rodapé. Defina a altura da vista do rodapé como 0.fonte
Tente isso. Funcionou para mim:
fonte
Para Swift:
fonte
Se você estiver usando o Swift, adicione o seguinte código para viewDidLoad do controlador que gerencia a visualização da tabela:
fonte
Você pode simplesmente adicionar um rodapé vazio no final para ocultar as células vazias, mas também parecerá bastante feio:
Existe uma abordagem melhor: adicione uma linha de 1 ponto no final da visualização da tabela, pois o rodapé e as células vazias também não serão mais exibidas.
fonte
basta adicionar este código ( Swift ). .
fonte
Avançando a solução de J. Costa: Você pode fazer uma alteração global na tabela colocando esta linha de código:
dentro do primeiro método possível (geralmente em
AppDelegate
, em:application:didFinishLaunchingWithOptions:
método).fonte
Eu sei que esta pergunta foi aceita como resposta, mas coloquei aqui maneiras diferentes de como ocultar a linha separadora extra de
UITableView
.Você pode ocultar
tableView
a linha separadora padrão e adicionar sua linha personalizada na parte superior de cada célula.Atualizar:
A maneira mais fácil de adicionar separador personalizado é adicionar
UIView
1px de altura simples :OU
OU
OU A melhor e mais simples maneira que eu gosto é
Tente qualquer um deles;
fonte
Você pode encontrar muitas respostas para essa pergunta. A maioria deles manipula
UITableView
otableFooterView
atributo s e essa é a maneira correta de ocultar linhas vazias. Para maior conveniência, criei uma extensão simples que permite ativar / desativar linhas vazias no Interface Builder. Você pode conferir a partir deste arquivo essencial . Espero que possa economizar um pouco do seu tempo.Uso:
fonte
linha separadora extra uitableview ocultar linhas separadoras extras ocultar no swift 3.0
fonte
Se você não deseja nenhum separador após a última célula, precisará de uma altura próxima a zero, mas diferente de zero, para o rodapé.
No seu
UITableViewDelegate
:fonte
Swift funciona muito bem com:
fonte
Basta adicionar uma visualização com a cor desejada do separador como cor de fundo, 100% de largura, 1px de altura na posição x0 y-1 ao seu tableViewCell. Certifique-se de que o tableViewCell não recorte subvisões, mas o tableView deve.
Assim, você obtém um separador absoluto simples e funcional apenas entre as células existentes, sem nenhum hack por código ou IB.
Nota: Em um salto superior vertical, o 1º separador aparece, mas isso não deve ser um problema, pois é o comportamento padrão do iOS.
fonte
Eu estava usando uma exibição de tabela para mostrar um número fixo de linhas de altura fixa, então simplesmente a redimensionei e a tornei não rolável.
fonte
Para eliminar linhas separadoras extras da parte inferior da UItableview programaticamente, basta anotar as duas linhas de código a seguir e ele removerá o separador extra.
Esse truque funciona para mim o tempo todo, tente você mesmo.
fonte
Tive sorte em implementar uma única parte da resposta aceita (iOS 9+, Swift 2.2). Eu tentei implementar:
No entanto, não houve efeito no meu
tableView
- acredito que possa ter algo a ver com o fato de estar usandoUITableViewController
.Em vez disso, só tive que substituir o
viewForFooterInSection
método (não configurei otableFooterView
outro lugar):Isso funcionou bem para uma
tableView
seção única (se você tiver várias seções, precisará especificar a última).fonte
Se você tiver apenas uma seção, a maneira mais rápida e fácil é simplesmente definir o Estilo de exibição de tabela de "Simples" para "Agrupado". (veja a imagem)
Se você tiver mais seções, pode ser necessário definir a altura do cabeçalho como zero (dependendo do gosto do seu / do seu cliente / do seu gerente de projeto)
Se você tiver mais seções e não quiser mexer com os cabeçalhos (mesmo que seja apenas uma linha no caso mais simples), será necessário definir um UIView como rodapé, conforme explicado nas respostas anteriores.
fonte
Extensão Swift 4.0
Apenas uma pequena extensão para o storyboard:
fonte
Rápido e fácil Swift 4 way.
Se você está tendo células estáticas. Você também pode desligar o separador na janela Inspetor. (isso não será desejável se você precisar do separador. Nesse caso, use o método mostrado acima)
fonte
super.viewDidLoad()
) e está incluída na resposta da wiki na parte superior. Quanto à remoção de todos os separadores, não é realmente sobre o assunto desta pergunta; é melhor reverter sua última edição e / ou excluir completamente sua resposta.Se você deseja remover o espaço indesejado no UITableview, pode usar abaixo dois métodos
fonte
Adicionei esta pequena extensão de tableview que ajuda a
fonte
Tente com isso
para o objetivo C
para Swift
fonte
Tente isto
fonte
UIKit
não cria uma célula vazia quandotableView
possui umtableFooterView
. Assim, podemos fazer um truque e atribuir umUIView
objeto de altura zero como rodapé dotableView
.fonte
Caso você tenha um
searchbar
emview
(para limitar o número de resultados, por exemplo), você também deve adicionar o seguinte emshouldReloadTableForSearchString
eshouldReloadTableForSearchScope:
fonte
No Swift (estou usando 4.0), você pode fazer isso criando uma
UITableViewCell
classe personalizada eoverriding
osetSelected
método Então oseparator insets
todo para 0 . (minha classe principal com a exibição de tabela tem um fundo claro) cor.fonte