Je veux avoir un scrollview qui couvre la totalité de l'écran. Cependant, je voudrais savoir s'il est possible de ne permettre la détection du défilement que dans une partie du scrollview. Par exemple, si vous avez un scrollview plein écran, la moitié supérieure de l'écran devrait détecter le défilement mais pas la moitié inférieure. Je sais que si vous changez l'alpha à 0, la vue de défilement ne défile plus, une solution possible serait de changer l'alpha d'une partie de la vue de défilement ? est-ce même possible ? Des idées ?
Réponse
Trop de publicités?
Andrew Vergunov
Points
601
Vous pouvez sous-classer UIScrollView et surcharger la méthode touchesShouldBegin
. Vous devriez vérifier à quel point les touches et l'autoriser ou non.
class ScrollView: UIScrollView {
override func touchesShouldBegin(_ touches: Set<UITouch>, with event: UIEvent?, in view: UIView) -> Bool {
if (touches.first?.location(in: self).y)! > self.bounds.height / 2 {
// In bottom part
return true
}
// In top part
return false
}
}