Obecnie mam view controller
, który składa się z Navigation bar
, a następnie UIView
, który ma dwa UIButtons
dodane jako subView. Następnie pod numerem UIView
zaczyna się pod numerem UITableView
.Wykonaj przewijanie UIView z UITableView, ale od góry do góry poza widokiem
W chwili, gdy użytkownik przewija numer UITableView
, przechodzi on za UIView
i . To, co tak naprawdę chciałbym zrobić, to, aby UIView
i UIButtons
przesuwały się w górę w widoku tabeli, ale tylko o wartość ich wysokości, która w tym przypadku wynosi 58 pikseli. Przepływ byłby taki ...
1) Zwoje stołu i UIView
przesuwa się wraz z nim o pierwsze 58 pikseli.
2) Użytkownik kontynuuje przewijanie tabeli, ale tylko "szpilki" UIView
są poza zasięgiem pod navigation bar
.
3) Gdy użytkownik przewinie tabelę z powrotem, UIView
jest następnie podnoszona i przeciągana do widoku. Wierzę, że nowa aplikacja na Facebooku robi coś podobnego na osi czasu.
Nie chcę ustawić UIView
jako tabeli TableHeaderView
, ponieważ mam również opcję "przeciągnij, aby odświeżyć", która następnie znajduje się nad przyciskami i wygląda okropnie. Próbowałem odtwarzać z właściwościami contentOffset
bazowego scrollview
stołu, ale uderzyłem w ścianę z cegły.
Wszelkie porady dotyczące tego, od czego zacząć, będą mile widziane.
Dzięki
EDIT: mam zdobyć trochę dalej i za pomocą tego kodu, aby przesunąć ramkę na UIView.
-(void) scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog (@"Content Offset: %f", self.tableView.contentOffset.y);
NSLog (@"Button Frame: %f", self.btnBackground.frame.origin.y);
if (self.tableView.contentOffset.y > 0)
{
CGRect newFrame = self.btnBackground.frame;
newFrame.origin.x = 0;
newFrame.origin.y = -self.tableView.contentOffset.y;
[self.btnBackground setFrame: newFrame];
}
}
Problem jest teraz, że metoda delegat scrollViewDidScroll nie zostanie zwolniony na tyle szybko, jeśli widok tabeli jest przewijany szybko. W rezultacie UIView nie wraca do pierwotnej pozycji, gdy przewija się szybko.
Hej, próbuję rozwiązać podobny problem już teraz. Czy kiedykolwiek zastanawiałeś się, co robić? @paulmorris – Thomas
Powiązane pytanie: http://stackoverflow.com/questions/25374090/move-a-view-when-scrolling-in-uitableview –
Hej, ja też doszedłem do podobnej sytuacji. Projektant chce, aby układ zachowywał się dokładnie tak, jak CoordinatorLayout w systemie Android. Btw to wymyśliłeś? –