Hier ist ein einfaches Beispiel für eine UIScrollView-Erweiterung, die Sie überall in Ihrer Anwendung verwenden können.
1) Zuerst sollten Sie Folgendes erstellen enum
mit möglichen Bildlaufrichtungen:
enum ScrollDirection {
case top, right, bottom, left
func contentOffsetWith(_ scrollView: UIScrollView) -> CGPoint {
var contentOffset = CGPoint.zero
switch self {
case .top:
contentOffset = CGPoint(x: 0, y: -scrollView.contentInset.top)
case .right:
contentOffset = CGPoint(x: scrollView.contentSize.width - scrollView.bounds.size.width, y: 0)
case .bottom:
contentOffset = CGPoint(x: 0, y: scrollView.contentSize.height - scrollView.bounds.size.height)
case .left:
contentOffset = CGPoint(x: -scrollView.contentInset.left, y: 0)
}
return contentOffset
}
}
2) Fügen Sie dann die Erweiterung zu UIScrollView hinzu:
extension UIScrollView {
func scrollTo(direction: ScrollDirection, animated: Bool = true) {
self.setContentOffset(direction.contentOffsetWith(self), animated: animated)
}
}
3) Das war's! Jetzt können Sie es verwenden:
myScrollView.scrollTo(.top, animated: false)
Dieser Bildlauf ist an die Größe des Inhalts der tableView gebunden und sieht natürlicher aus als scroll to CGPoint.zero