Muszę dodać puste miejsce w górnej części mojego UITableView, które nie wpływa na rozmiar obszaru zawartości. Przesuwanie zawartości w dół lub dodawanie pustej komórki NIE jest tym, co chcę zrobić. Zamiast tego chcę tylko przesunięcia.
W jaki sposób?
ios
uitableview
cocoa-touch
uikit
contentoffset
bluefloyd8
źródło
źródło
Możesz dodać „pusty” widok nagłówka do tabeli ... dałoby to początkowy wygląd tabeli z przesunięciem, ale po rozpoczęciu przewijania przesunięcie by zniknęło. NIE jestem pewien, czy tego chcesz.
Jeśli potrzebujesz stałego odsunięcia i nie używasz jeszcze nagłówków sekcji, możesz utworzyć odsunięcie podobnie do powyższego, tworząc niestandardowe widoki dla nagłówków sekcji, zwłaszcza jeśli masz tylko jedną sekcję, może to dać wygląd stałego odsunięcia .
Mogę opublikować przykładowy kod, jeśli wygląda na to, że któryś z nich jest tym, czego szukasz.
źródło
Odpowiedź Jigzata połączyłem z:
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 320, 1) animated:NO];
w
- (void)viewDidLoad
więc pierwsza komórka nie znajduje się na górze.
źródło
Swift 5.1
dodaj następujące elementy w viewDidLoad
tableView.contentInset.top = 100
Naprawdę to wszystko.
override func viewDidLoad() { super.viewDidLoad() tableView.contentInset.top = 100 }
źródło
Wygląda na to, że chcesz owinąć „Widok” wokół swojego
UITableView
. Jeśli maszUITableViewController
IB,UITableView
zostanie automatycznie ustawiony naview
zUITableViewController
. Zmieniaszview
właściwość na normalnąUIView
i dodajeszUITableView
tam swoje i nadajesz mu przesunięcie.--- Edytuj --- Właśnie przeczytałem swój post i pomyślałem, że nie ma to sensu :) Kiedy tworzysz plik
UITableViewController
, dostajesz to (w pseudokodzie):UITableViewController.view = UITableView
Oznacza to, że właściwy stół zajmie całą przestrzeń i nie można nawet dodawać innych widoków. Więc musisz zmienić
UITableViewController.view = UIView
i dodaj do tego swój stół
UIView
źródło
Połączyłem tę odpowiedź z tą: https://stackoverflow.com/a/9450345/1993937
Aby tableView był wyświetlany u góry wstawki zawartości, więc miejsce na górze nie jest odcinane przez lekkie przewinięcie tableView w dół, gdy widok pojawia się początkowo. (18 to moja największa luka)
[self.tableView setContentInset:UIEdgeInsetsMake(18,0,0,0)]; [self.tableView setContentOffset: CGPointMake(0, -self.songListTable.contentInset.top) animated:YES];
źródło