Sie müssen die Containeransicht für die Bildlaufansicht und die Ansicht, die Sie als Stellvertreter für die Bildlaufansicht ausblenden möchten, registrieren, indem Sie diese Klasse dem UIScrollViewDelegate-Protokoll entsprechend registrieren.
Sie müssen auch den Überblick über die Scroll-Ansicht Inhalt Offset-Eigenschaft zu halten, und setvthis auf die Anfänge der Scroll-Ansicht versetzt, wenn es erstellt wird:
fileprivate var scrollOffset : CGPoint
Dann, wie Sie sagen, die scrollViewDidScroll Methode verwenden :
internal func scrollViewDidScroll(_ scrollView: UIScrollView) {
let delta : CGPoint = CGPoint(x: scrollView.contentOffset.x - scrollOffset.x,
y: scrollView.contentOffset.y - scrollOffset.y)
if delta.y > 0, subviewToFade.isDescendant(of: self) {
// fade out subviews and remove
else if delta < 0, !subviewToFade.isDescendant(of: self) {
// add subviews and fade back in
}
scrollOffset = scrollView.contentOffset
}
Hoffe, dass hilft.
Zeigen Sie, was Sie bisher gemacht haben? – cole
Bestätigen Sie auch, ist Ihre Ansicht einfach UIView oder tableView oder collectionView? – cole
Meine Wette wäre, sich an das 'contentOffset' von' scrollView' in der 'didScroll' Methode zu erinnern. Wenn Sie dann sehen, dass "scrollView" nach oben geht, sollten Sie Ihre benutzerdefinierte Ansicht (bis zu einem gewissen Punkt) bewegen (animieren) (wie ich zusammen mit alpha sehe). Wenn du bemerkst, dass es untergeht, mach das Gegenteil (auch begrenzt auf den einen Punkt). – Adamsor