2016-03-18 2 views
1

J'ai cette tableViewCell avec un titleLabel sur la gauche et un textField sur la droite.Comment utiliser accessibilityPath

enter image description here

I a désactivé l'accessibilité du TitleLabel et donner la textField une accessibilityLabel du texte du TitleLabel, pour éviter les doublons.

La question est que je veux faire le textFiled a un cadre de mise au point qui a la même taille de tableViewCell. En d'autres termes, lorsque les utilisateurs se concentrent sur textField, je voudrais que le focus soit sur la cellule.

Il semble que je puisse y parvenir en utilisant accessibilityPath. J'ai essayé mais ça ne marche pas.

let path = UIBezierPath(rect: cell.frame) 

cell.textField.accessibilityPath = path 

Une idée de comment utiliser le accessibilityPath? Merci!

+0

où vous essayez de faire cela? dans la cellule pour la ligne à la méthode d'index? –

+0

si vous voulez seulement mettre en surbrillance la cellule du tableau, alors vous ne le faites pas directement en faisant de la cellule du tableau un élément accessible mais pas ses sous-vues? –

+0

@TejaNandamuri Oui, c'est dans la méthode cellForRowAtIndexPath. Si je rends la cellule accessible, elle perdra les traits de textField. Comme quand vous faites la mise au point de la cellule, elle n'accédera pas "textField, double tap pour éditer" etc. –

Répondre

0

Le chemin de la cellule doit se trouver dans le cadre de référence de sa vue d'ensemble (tableView). Vous devrez peut-être convertir le chemin de la cellule dans les coordonnées de la vue d'ensemble textField. Essayez quelque chose comme:

let accessibilityPath = cell.convertRect(path, toView: cell.textField)

+0

Merci de me rappeler que j'ai besoin de convertir le cadre en coordonnées d'écran! Je viens de réaliser que je peux utiliser accessibilityFrame et utiliser UIAccessibilityConvertFrameToScreenCoordinates pour aider à convertir le cadre. Cela fonctionne bien pour les premières cellules, mais une fois que vous faites défiler la table, toutes les images sont foirées :( –

+0

Regardez quelqu'un qui a résolu le problème https://coderwall.com/p/sswchq/ios-custom- views-and-accessibility-in-table-views Une autre approche consisterait à créer une sous-classe 'UITableViewCell' personnalisée qui gère le tap et l'édition afin qu'Accessibility sélectionne la cellule entière. – stevekohls