2017-04-10 5 views
0

Ok, bizarre ici.UITextView défilement est inversé sur tvOS

J'ai un UITextView que je remplis avec une chaîne attribuée. Le TextView ne veut pas faire défiler par lui-même si je dois permettre à certains paramètres, notamment:

override func viewDidLoad() { 
     super.viewDidLoad() 
     articleText.isUserInteractionEnabled = true 
     articleText.isSelectable = true 
     articleText.isScrollEnabled = true 
     articleText.panGestureRecognizer.allowedTouchTypes = [NSNumber(value: UITouchType.indirect.rawValue)] 
     articleText.bounces = true 
     setup() 
    } 

Cependant, la mise en ScrollView Ils provoquent pour faire défiler la manière inversée par rapport à tout le reste sur tvOS. Vraiment bizarre. Le code complet de la classe est la suivante:

class ArticleViewController : UIViewController, ListingViewControllerProtocol { 

    var listing : ListingData? 

    @IBOutlet weak var articleText: UITextView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     articleText.isUserInteractionEnabled = true 
     articleText.isSelectable = true 
     articleText.isScrollEnabled = true 
     articleText.panGestureRecognizer.allowedTouchTypes = [NSNumber(value: UITouchType.indirect.rawValue)] 
     articleText.bounces = true 
     setup() 
    } 

    func setup(){ 
     if let listing = self.listing { 
      APIManager.sharedInstance.getShortendArticle(url: listing.url, onCompletion: { (json) in 
       let article = ShortendArticle(fromJson: json) 
       let html = "<h1>" + article.title + "</h1>" + article.content 

       DispatchQueue.main.async(execute: { 
        let theAttributedString = try! NSAttributedString(data: html.data(using: String.Encoding.utf8, allowLossyConversion: false)!, 
                     options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType], 
                     documentAttributes: nil) 
        self.articleText.attributedText = theAttributedString 
       }) 
      }) 

     } 
    } 
} 

mine est pas la même que la question connexe parce que je ne cherche pas à écarter des normes tvOSs

+0

double possible de [inverti Scrolling dans UICollectionView de tvOS] (http://stackoverflow.com/questions/34685150/invert-scrolling-in-uicollectionview-of-tvos) – Fantini

Répondre

0

Ce code semble fonctionner comme prévu, il signifie:

  • balayez vers le haut défile geste vers le bas le texte, ce qui permet à l'utilisateur de continuer à lire plus de texte. Comportement similaire à celui de glisser dans iOS

  • Balayez vers le bas faire défiler le texte pour revenir au début.

De tvOS humaines Interface Guidelines:

Sur l'Apple TV, presque tout indirect utilise la manipulation-gestes focus mouvement entre les objets et les rouleaux du système l'interface pour garder les articles ciblés visibles. Si votre application met en œuvre une manipulation indirecte , assurez-vous que la mise au point se déplace dans le sens du geste. Si quelqu'un tape ou glisse à droite sur la télécommande, par exemple, la mise au point doit se déplacer vers la droite, ce qui signifie que le contenu peut se déplacer vers la gauche. Si quelqu'un tape ou balaie vers le haut, la mise au point devrait se déplacer vers le haut. Les éléments en plein écran, tels que les photos , doivent utiliser la manipulation directe, tandis que les gestes déplacent les objets, plutôt que . Glisser à droite, par exemple, devrait déplacer la photo de gauche à droite.

https://developer.apple.com/tvos/human-interface-guidelines/user-interaction/

+0

Y at-il un raison particulière pourquoi collectionViews et tableViews fonctionnent différemment à cela? – spogebob92

+0

@ spogebob92 modifié pour ajouter une mention à Human Interface Guidelines –