2016-07-19 8 views
1

zu diesem Beitrag Gründend: UICollectionViewCell to UIButton Focus in tvOS, ich bin das Hinzufügen eines UIFocusGuide so, wenn der Benutzer auf der rechten Seite des collectionview sind, können Sie die Taste auf der linken Buttom wählen.UIFocusGuide funktioniert nicht auf UICollectionView in tvOS

Mit diesem Code:

focusGuide = UIFocusGuide(); 
focusGuide.preferredFocusedView = btClick 
view.addLayoutGuide(focusGuide) 
focusGuide.topAnchor.constraintEqualToAnchor(collectionView.topAnchor).active = true 
focusGuide.bottomAnchor.constraintEqualToAnchor(btClick.bottomAnchor).active = true 
focusGuide.leadingAnchor.constraintEqualToAnchor(collectionView.leadingAnchor).active = true 
focusGuide.widthAnchor.constraintEqualToAnchor(collectionView.widthAnchor).active = true 

In meinem Beispiel habe ich ein nützliches code von Jack Cox geschaffen, das die ‚unsichtbare‘ Layout Führer zeigt, und alles scheint gut, weil das Layout auf der Oberseite des collectionView beginnen und endet auf der Unterseite der Schaltfläche.

Aber es hat nicht funktioniert, kann die Taste nur dann gewählt werden, wenn der Benutzer auf der linken Seite von collectionView sind, auf diesem Bild können Sie nur von Element zu Taste gehen 1 und Artikel 6.

enter image description here

Ich habe ein kleines Beispiel auf Github here gemacht, ich weiß nicht, was ich falsch mache.

Antwort

2

ich bereits herausgefunden haben, war der Fehler, den Fokus mit der gesamten Größe des collectionView nun erstelle ich einen Fokus Führung knapp unterhalb der collectionView und setzen preferredFocusedView auf die Schaltfläche erstellt haben.

Mit diesem Code:

focusGuide = UIFocusGuide(); 
focusGuide.preferredFocusedView = btClick 
view.addLayoutGuide(focusGuide) 

//Modified the size of the UIFocusGuide 
focusGuide.topAnchor.constraintEqualToAnchor(btClick.topAnchor).active = true 
focusGuide.rightAnchor.constraintEqualToAnchor(collectionView.rightAnchor).active = true 

focusGuide.widthAnchor.constraintEqualToAnchor(btClick.widthAnchor, multiplier: 8).active = true 
focusGuide.heightAnchor.constraintEqualToAnchor(btClick.heightAnchor).active = true 

Nun ist die Führung sieht wie folgt aus: enter image description here

Ich habe gerade die Änderungen committ vielleicht GitHub es jemand anderes hilft.

+0

Sie sparen meinen Tag, danke! –

Verwandte Themen