Gibt es eine Möglichkeit zu wissen, ob a UIScrollView
oben oben oder unten angekommen ist?
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate
?
Vielen Dank.
Gibt es eine Möglichkeit zu wissen, ob a UIScrollView
oben oben oder unten angekommen ist?
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate
?
Vielen Dank.
Implementieren Sie das UIScrollViewDelegate
in Ihrer Klasse und fügen Sie Folgendes hinzu:
-(void)scrollViewDidScroll: (UIScrollView*)scrollView
{
float scrollViewHeight = scrollView.frame.size.height;
float scrollContentSizeHeight = scrollView.contentSize.height;
float scrollOffset = scrollView.contentOffset.y;
if (scrollOffset == 0)
{
// then we are at the top
}
else if (scrollOffset + scrollViewHeight == scrollContentSizeHeight)
{
// then we are at the end
}
}
Hoffe das ist was du suchst! Andernfalls basteln Sie, indem Sie dem obigen Code weitere Bedingungen hinzufügen und den Wert von scrollOffset mit NSLog versehen.
navigationController
, möchten Sie vielleicht etwas Ähnliches tun:scrollOffset <= (0 - self.navigationController.navigationBar.frame.size.height - 20)
und(scrollOffset + scrollHeight) >= scrollContentSizeHeight
Nun,
contentInsets
sind auch beteiligt, wenn Sie versuchen festzustellen, ob scrollView oben oder unten ist. Sie könnten auch an Fällen interessiert sein, in denen sich Ihre scrollView über und unter der Unterseite befindet. Hier ist der Code, mit dem ich die oberen und unteren Positionen finde:Schnell:
Ziel c:
quelle
return scrollViewBottomOffset
return scrollViewBottomOffset.rounded()
safeAreaInsets
auch berücksichtigt.scrollView.contentOffset.y + scrollView.bounds.height - scrollView.safeAreaInsets.bottom
Wenn Sie den Code schnell haben möchten:
quelle
Einfache und saubere Erweiterung:
Auf GitHub:
https://github.com/salutis/swift-scroll-view-edges
quelle
Ich habe genau herausgefunden, wie es geht:
quelle
Mach es so (für Swift 3):
quelle