Jak zreplikować to zachowanie znalezione w aplikacji Notes:
- Masz
UITableViewController
z przedmiotami, - Możesz przewinąć listę w dół (z dużą ilością przedmiotów),
- Po dotarciu do dolnej części listy możesz"overscroll" trochę, ale lista nie przewinie się do końca. Pod ostatnim elementem pozostanie trochę miejsca. To miejsce jest wykorzystywane w programie Notes do wyświetlania niektórych obrazów układu.
Aby pokazać ze zdjęciami:
To jest lista "nieskopiowana". Łatwo jest stworzyć takie wykorzystanie UITableViewController
. A kiedy "wyciągniesz" listę, domyślnie UITableViewController
po prostu odbija się z powrotem do tego stanu.
Jednak Notes pozwala na to:
na przykład. Po przewinięciu, aby zostawić trochę miejsca, nie pozwól, aby odbijał się od nowa.
W jaki sposób replikujesz takie zachowanie?
Odpowiedzi:
10 dla odpowiedzi № 1Możesz zmienić zawartość wstawek swojego tableView w ten sposób:
[_tableView setContentInset:UIEdgeInsetsMake(0, 0, 100, 0)];
Na końcu tabeli pojawi się wstawka o wielkości 100 pikseli na dole tabeli. Widok podczas przewijania.
4 dla odpowiedzi nr 2
Oto prosty sposób na zrobienie tego.
Po prostu (być może w ViewDidLoad) dodaj puste UIView jako stopkę tabeli do UITableView.
Coś takiego:
UIView *footer = [[UIView alloc] init];
footer.frame = CGRectMake(0, 0, 0, 100); // The only one that matters here is the height
self.tableView.tableFooterView = footer; // tableView is an outlet to the tableView
4 dla odpowiedzi nr 3
Szybki:
Myślę, że sposób na zrobienie tego w Swift jest taki.
tableView.contentInset = UIEdgeInsetsMake(0, 0, 100, 0)
Wiem, że to stare pytanie, ale może przynieść korzyść komuś.
3 dla odpowiedzi № 4
Szybki:
var footer:UIView = UIView(frame: CGRectMake(0, 0, 0, 44))
tableView.tableFooterView = footer
1 dla odpowiedzi nr 5
Aktualizowanie odpowiedzi Kirualex:
Idealne umieszczenie: UITableViewController viewDidLoad
Swift 3:
// Add 50 extra pixels at bottom of the list when scrolling
self.tableView.contentInset = UIEdgeInsets(top:0, left: 0, bottom: 50, right: 0)