7
votes

Faites défiler UiscrollView avec TVOS

Je suis bloqué avec le contenu du défilement dans UiscrollView dans mon application TVOS.

J'ai ScrollView avec hauteur = 400 et largeur = 400. Dans cette ScrollVoiri, je n'ai pas de défilement uitextview avec hauteur = 800 et largeur = 400. Donc je veux faire défiler ce texte.

Mais ma vue de défilement n'est pas défilée, je ne vois aucun indicateur de défilement et que mon ScrollView ait une valeur iSFocused = Faux. Comment puis-je résoudre ce problème?

p. Mise à jour J'ai créé une vue de vue distincte (image ci-dessous). Il a la vision blancheview et la vue blanche avec une grande hauteur avec une étiquette au milieu de celui-ci. ScrollView a une largeur et une hauteur fixes et il n'y a pas de défilement pour une raison quelconque! Je n'ai même pas connecté de classe distincte - vient de le créer à partir d'Interface Builder.

 Entrez la description de l'image ici


3 commentaires

Comment vous définissez la contrainte?


Votre UitextView est-elle modifiable? Si vous êtes éditxtview est éditable, le défilement de UiscrollView ne fonctionnera pas.


1) Je fixe des contraintes à l'aide de l'interface Builder 2) Mon TextView n'est pas modifiable


4 Réponses :


0
votes

Je pense que vous pouvez utiliser la méthode

func gestureRecognizer (_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool 


1 commentaires

Vous n'avez besoin que d'autoriser le geste tactile sur le ScrollView: ScrollView.PangesurerEcognizer.AllowedtouchTypes = [Number (valeur: uitouchtype.indirect.rawvalue)]



0
votes

Il y a un moyen de résoudre votre problème.

  1. Veuillez vérifier votre vision de ScrollView dans Storyboard, votre indicateur de défilement ou vertical est coché?
  2. u peut rendre votre TextView défilable si vous voulez juste faire défiler le contenu TextView
  3. Il y a un problème dans votre contrainte, vous devez rédiger une réduction de la hauteur, du haut de l'espace vertical, de l'espace vertical de votre TextView à votre ScrollView.

    J'espère que ces conseils peuvent vous aider


1 commentaires

Malheureusement, ça n'a pas aidé



0
votes

Vous devez donc définir la taille du contenu de ScrollView, plus grande que les limites ScrollView, vous devez donc définir le contenu de (400, 800), probablement en vous XIB


0 commentaires

2
votes

UIView n'est pas concentré par défaut (et comme tel à TVO, il ne peut pas être défilé). Vous devez le sous-classer pour remplacer CanbecomeFocusd: xxx

puis dans votre exemple, utilisez la classe MyUIView au lieu d'UIView pour votre longue vue blanche. Définir les bonnes contraintes dont vous n'avez pas besoin de concevoir les points de vue des limites de la vue du contrôleur dans IB. Vérifiez Cette réponse avec le gist lié pour voir comment construire les contraintes.


1 commentaires

CORRECT, et vous devez également définir les autorisateurs autorisés sur le pangestureCognizer de ScrollView: self.scrollview.pangesereCognizer.allandedtouchTypes = @ [@ (uitouchtypeIndrect)];