Uso uno standard UICollectionView
con sezioni. Le mie cellule sono disposte come una griglia. La cella successiva in una direzione prescelta viene messa a fuoco correttamente se l'utente sposta l'attenzione sul telecomando Apple TV. Ma se c'è un "buco" nella griglia, il motore di messa a fuoco predefinito salta sopra le sezioni. Lo fa per mettere a fuoco una cella che potrebbe essere di diverse sezioni ma si trova nella stessa colonna.Comportamento del motore con messa a fuoco personalizzata per UICollectionView
Semplice esempio: Ci sono 3 sezioni. La prima sezione ha 3 celle. Il secondo ha 2 celle e l'ultimo ha ancora 3 celle. Vedere la seguente immagine:
Se la cella verde è concentrata e l'utente tocca la direzione verso il basso, la cella gialla viene concentrata e la sezione due viene saltata dal motore di messa a fuoco.
Vorrei forzare che nessuna sezione possa essere saltata. Quindi, invece di focalizzare la cella gialla, vorrei mettere a fuoco la cella blu.
Ho appreso che il motore di Apple TV Focus funziona internamente come un sistema a griglia e che il comportamento descritto è quello predefinito. Per consentire altri movimenti (ad es. In diagonale), è necessario aiutare il motore di messa a fuoco immettendo gli UIFocusGuide
invisibili che possono reindirizzare il motore di messa a fuoco su un preferredFocusedView
.
Quindi nell'immagine seguente c'è una guida di messa a fuoco rossa invisibile posizionata nello spazio vuoto di una sezione UICollectionView
che reindirizza il fuoco verso il basso alla cella blu desiderata. Penso che sarebbe la soluzione perfetta, in theorie.
Ma come potrei aggiungere UIFocusGuide
s per tutti gli spazi vuoti di UICollectionView
sezioni? Ho provato diverse cose ma non ha funzionato. Forse aggiungilo come Vista Decoratore ma sembra sbagliato. O come celle aggiuntive, ma che interrompe il livello dati e gli ancoraggi vincoli non funzionano.
Qualcuno ha un'idea su come aggiungere UIFocusGuide
s a UICollectionView
?
Stesso problema per me. Hai provato a sovrascrivere collectionView: canFocusItemAtIndexPath e restituisce falso alla cella gialla? –
No, non ho. Ma immagino che potrebbe creare un po 'di confusione, perché le celle dovrebbero essere focalizzabili. Preferisco ancora la tecnica 'UIFocusGuide'. Ma ancora non so come raggiungerlo. Ho chiesto anche nei forum di apple: https://forums.developer.apple.com/it/message/93020 Per favore informami se hai trovato una soluzione. –