2 votes

Scrollview ne détecte que le défilement à partir de certaines zones ?

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 ?

1voto

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
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X