tvOS UICollectionView bekomme derzeit fokussierte Element ist index-Pfad
Also das ist ziemlich noobish Frage, aber ich kann nicht einfach herauszufinden, eine sehr einfache Möglichkeit zum erkennen des aktuell fokussierten Element indexPath
.
Ich sah mich um in der Hoffnung etwas zu sehen, sehr leicht, wie collectionView.indexPathOfCurrentlyFocusedItem
aber nicht finden, alles, was im entferntesten nahe.
Also ich habe gegraben, um und versuchte, etwas zu finden, ähnlich wie bei UIFocusEnvironment
, UIFocusUpdateContext
zu finden versuchen, um die gewünschte Eigenschaft aber nicht.
Also, die einzige Lösung, die ich mit oben kommen kann ist einfach nur Durchlaufen alle sichtbaren Zellen und die Suche nach einer Zelle mit focused-Eigenschaft auf true festgelegt.
So gibt es einen einfachen und eleganten Weg zu finden, der aktuell fokussierten Element indexPath
? (Außer tracking durch delegate-Methode und speichern Sie Sie in der Ansicht controller-Eigenschaft)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
UIScreen
EigenschaftfocusedView
wie folgt für diese:Verwenden didUpdateFocusInContect - UICollectionViewDelegate
Diese wil die Rückkehr der indexPath der Zelle, die gehen, um fokussiert werden, Sie könnten auch versuchen:
Hängt davon ab, was Sie zu tun versuchen.
collectionView.indexPathOfCurrentlyFocusedItem
So, Ihr Ziel ist, etwas zu tun, wenn Sie und verlieren den Fokus vor allem auf eine Zelle unter tvOS. Der Haken ist, Sie bewegen sich um andere UI-Elemente, und daher der Zusammenhang anders sein könnte. Ändern Sie in diesem Zusammenhang nur die UIs, die Sie haben zu kümmern.
Den richtigen Ort, um Ihre Implementierung func didUpdateFocusInContext(), etwa so:
Nun sind wir mit dem Fokus-Koordinator gelten unsere Logik:
Wie Sie sehen können, didUpdateFocusInContext() bietet einen generischen Ansatz für alle Ansichten im aktuellen visuellen Kontext. Sie können sich bewerben, den gleichen Ansatz für andere UI-Elemente.
Haben Spaß mit tvOS...
Hier, wie ich das bewerkstelligen in
shouldUpdateFocusInContext
Lösung