Konstruktor interfejsów (iOS 9+)
Po prostu przeciągnij UIView do tabeli. W serii ujęć będzie u góry poniżej niestandardowych komórek. Możesz nazwać to „stopką”.
Tutaj jest pokazany na zielono dla jasności, prawdopodobnie chcesz wyraźnego koloru.
Pamiętaj, że dostosowując wysokość, możesz wpływać na sposób obsługi „odbicia od dołu” stołu, jak wolisz. (Wysokość zero jest zwykle w porządku).
Aby to zrobić programowo:
Szybki
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.tableFooterView = UIView()
}
Cel C
iOS 6.1+
- (void)viewDidLoad
{
[super viewDidLoad];
// This will remove extra separators from tableview
self.tableView.tableFooterView = [UIView new];
}
lub jeśli wolisz
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
Historycznie w iOS:
Dodaj do kontrolera widoku tabeli ...
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
// This will create a "invisible" footer
return CGFLOAT_MIN;
}
a jeśli to konieczne ...
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
return [UIView new];
// If you are not using ARC:
// return [[UIView new] autorelease];
}
tableFooterView
pozostawia separator w ostatniej komórce w wierszu, ponieważ tabela nadal przewiduje zawartość poniżej tej komórki. Użycie historycznego sposobu wyeliminuje ten ostatni separator i ogólnie będzie wyglądało lepiej.Oto inny sposób na zrobienie tego bez stylu pogrupowanego stołu, którego prawdopodobnie nie zgadniesz. Dodanie
nagłówka istopki do tabeli(być może jeden lub drugi wystarczy, nie zaznaczono)powoduje, że separatory znikają z wypełniacza / pustych wierszy.Natknąłem się na to, ponieważ chciałem trochę miejsca na górze i na dole stolików, aby zmniejszyć ryzyko uderzenia w guziki zamiast komórki stołu mięsistymi palcami. Oto metoda umieszczenia pustego widoku jako nagłówka i stopki. Użyj dowolnej wysokości, nadal eliminujesz dodatkowe linie separatora.
W odpowiedzi na @Casebash wróciłem do kodu w mojej aplikacji (Menedżer list „AcmeLists” w sklepie iTunes ...) i zwróciłem uwagę na metodę addHeaderAndFooter w celu weryfikacji. Bez tego mam dodatkowe separatory wierszy; z kodem mam to, co widzisz w tym oknie: brak obrazu separatorów wierszy tabeli . Nie jestem więc pewien, dlaczego by to nie zadziałało. Co więcej, ma dla mnie sens, że posiadanie dowolnej niestandardowej stopki w widoku tabeli musi koniecznie przestać rysować separatory wierszy dla pustych wierszy poniżej. To byłoby ohydne. Dla porównania, przejrzałem tabele, w których było więcej wierszy niż można było wyświetlić na ekranie, a następnie tabelę z dwoma rzędami. W obu przypadkach brak obcych separatorów.
Być może twoje niestandardowe widoki nie zostały faktycznie dodane. Aby to sprawdzić, ustaw kolor tła na inny niż
clearColor
np[UIColor redColor]
. Jeśli nie widać czerwonych pasków u dołu tabeli, stopka nie została ustawiona.źródło
Usuwanie dodatkowych linii separatora dla pustych wierszy w UITableView w Swift
źródło
Chciałbym przedłużyć wkw odpowiedź:
Wystarczy dodać tylko stopkę o wysokości 0. (testowany na SDK 4.2, 4.4.1)
lub nawet prościej - tam, gdzie konfigurujesz widok tabeli, dodaj ten wiersz:
lub jeszcze prościej - aby po prostu usunąć wszelkie separatory:
Jeszcze raz dziękuję wkw :)
źródło
Na iOS 7+ za pomocą Storyboardów
Po prostu przeciągnij a
UIView
doUITableView
stopki. Ustaw wysokość widoku stopki na 0.źródło
Spróbuj tego. To działało dla mnie:
źródło
Dla Swift:
źródło
Jeśli używasz Swift, dodaj następujący kod do viewDidLoad kontrolera, który zarządza tableview:
źródło
Możesz po prostu dodać pustą stopkę na końcu, aby ukryć puste komórki, ale będzie też wyglądać dość brzydko:
Istnieje lepsze podejście: dodaj 1-punktową linię na końcu widoku tabeli jako stopkę, a puste komórki również nie będą już wyświetlane.
źródło
po prostu dodaj ten kod ( Swift ). .
źródło
Postęp w rozwiązaniu J. Costa: Możesz wprowadzić globalną zmianę w tabeli, umieszczając następujący wiersz kodu:
wewnątrz pierwszej możliwej metody (zwykle w metodzie
AppDelegate
: wapplication:didFinishLaunchingWithOptions:
:).źródło
Wiem, że na to pytanie została zaakceptowana odpowiedź, ale podaję tutaj różne sposoby na ukrycie dodatkowej linii separatora
UITableView
.Możesz ukryć
tableView
standardową linię separatora i dodać własną linię u góry każdej komórki.Aktualizacja:
Najłatwiejszym sposobem dodania niestandardowego separatora jest dodanie prostej
UIView
o wysokości 1px:LUB
LUB
LUB Najlepszy i prosty sposób, jaki kiedykolwiek lubię
Wypróbuj dowolną z nich;
źródło
Możesz znaleźć wiele odpowiedzi na to pytanie. Większość z nich wokół manipulacji z
UITableView
„stableFooterView
atrybut i to jest właściwa droga, aby ukryć puste wiersze. Dla wygody stworzyłem proste rozszerzenie, które pozwala włączać / wyłączać puste wiersze w interfejsie Konstruktora. Możesz to sprawdzić z tego pliku gist . Mam nadzieję, że zaoszczędzi to trochę twojego czasu.Stosowanie:
źródło
uitableview dodatkowa linia separatora ukryj dodatkowe linie separatora ukryj w swift 3.0
źródło
Jeśli nie chcesz żadnego separatora po ostatniej komórce, potrzebujesz stopki bliskiej zeru, ale niezerowej wysokości.
W twoim
UITableViewDelegate
:źródło
Swift świetnie współpracuje z:
źródło
Wystarczy dodać widok z wybranym kolorem separatora jako kolorem tła, 100% szerokości, wysokości 1px w pozycji x0 y-1 do tableViewCell. Upewnij się, że tableViewCell nie przycina widoków podrzędnych, zamiast tego tableView powinien.
Otrzymujesz więc absolutnie prosty i działający separator tylko pomiędzy istniejącymi komórkami, bez żadnego hacka na kod lub IB.
Uwaga: przy pionowym odbiciu u góry pojawia się 1. separator, ale nie powinno to stanowić problemu, ponieważ jest to domyślne zachowanie iOS.
źródło
Korzystałem z widoku tabeli, aby pokazać stałą liczbę rzędów o stałej wysokości, więc po prostu zmieniłem jej rozmiar i sprawiłem, że nie można go przewijać.
źródło
Aby programowo wyeliminować dodatkowe linie separatora z dolnej części UItableview, po prostu zapisz następujące dwa wiersze kodu, aby usunąć z niego dodatkowy separator.
Ta sztuczka działa na mnie cały czas, spróbuj sam.
źródło
Miałem trochę szczęścia, wdrażając jedną z zaakceptowanych odpowiedzi (iOS 9+, Swift 2.2). Próbowałem wdrożyć:
Jednak nie miało to na mnie wpływu
tableView
- uważam, że może mieć to coś wspólnego z faktem, że używałemUITableViewController
.Zamiast tego musiałem tylko przesłonić
viewForFooterInSection
metodę (nie ustawiłemtableFooterView
gdzie indziej):Działa to dobrze w
tableView
przypadku pojedynczej sekcji (jeśli masz wiele sekcji, musisz określić ostatnią).źródło
Jeśli masz tylko jedną sekcję, najszybszym i najprostszym sposobem jest ustawienie stylu widoku tabeli z „Zwykły” na „Zgrupowany”. (patrz zdjęcie)
Jeśli masz więcej sekcji, może być konieczne ustawienie wysokości nagłówka na zero (w zależności od upodobań twojego / twojego klienta / kierownika projektu)
Jeśli masz więcej sekcji i nie chcesz zadzierać z nagłówkami (nawet jeśli w najprostszym przypadku jest to tylko jedna linia), musisz ustawić UIView jako stopkę, jak wyjaśniono w poprzednich odpowiedziach)
źródło
Rozszerzenie Swift 4.0
Tylko małe rozszerzenie do scenorysu:
źródło
Szybki i łatwy Swift 4 way.
Jeśli masz komórki statyczne. Możesz także wyłączyć separator w oknie Inspektora. (nie będzie to pożądane, jeśli potrzebujesz separatora. W takim przypadku użyj metody pokazanej powyżej)
źródło
super.viewDidLoad()
) i znajduje się w odpowiedzi wiki na górze. Jeśli chodzi o usunięcie wszystkich separatorów, to nie o to chodzi w tym pytaniu, więc lepiej cofnij swoją ostatnią edycję i / lub całkowicie usuń swoją odpowiedź.Jeśli chcesz usunąć niechciane miejsce w UITableview, możesz użyć poniższych dwóch metod
źródło
Dodałem to małe rozszerzenie widoku tabeli, które pomaga przez cały czas
źródło
Spróbuj tego
dla celu C
dla Swift
źródło
Spróbuj tego
źródło
UIKit
nie tworzy pustej komórki, gdytableView
matableFooterView
. Możemy więc zrobić lewę i przypisać obiekt o zerowej wysokościUIView
jako stopkętableView
.źródło
Jeśli masz
searchbar
w swoimview
(na przykład, aby ograniczyć liczbę wyników), musisz również dodać następujące wshouldReloadTableForSearchString
ishouldReloadTableForSearchScope:
źródło
W Swift (używam 4,0), można to osiągnąć poprzez tworzenie niestandardowej
UITableViewCell
klasy, aoverriding
tensetSelected
sposób. Następnieseparator insets
wszystko do 0 . (moja główna klasa z widokiem tabeli ma wyraźne tło) kolor.źródło