2010-12-06 15 views
0

Cette question a été posée here sous une forme légèrement différente, mais la question n'a pas été abordée dans ce fil de discussion, d'où ce fil de discussion.UITableView ne répond pas à setUserInteractionEnabled

Dans mon application iPad, je permets à l'utilisateur de sélectionner un nombre de cellules dans une vue tabulaire. Après que l'utilisateur a appuyé sur un bouton, un processus commence et l'utilisateur n'est pas autorisé à interagir avec la vue de la table à ce moment-là (rassurez-vous, l'utilisateur peut toujours interagir avec l'application). Pour ce faire, je pensais que la propriété "userInteractionEnabled" de UITableView était la réponse, mais en dépit de la définition de cette propriété sur NO (et en vérifiant qu'elle est bien définie sur NO), l'utilisateur peut toujours interagir avec la fonction UITAndConnect. vue de la table.

J'ai également essayé la même approche dans un nouveau projet de gabarit Xcode et cela fonctionne très bien. Est-ce que je manque quelque chose d'essentiel?

Répondre

1

Je ne sais pas pourquoi la définition de la propriété userInteractionEnabled sur NO ne fonctionne pas, mais j'ai trouvé une solution de contournement en définissant scrollEnabled sur NO et permet de sélectionner NO. Il en résulte un effet similaire qui imite ce que je cherche.

0

Je crois que vous voyez ceci parce que l'utilisateur interagit avec des cellules de tableau, pas la table elle-même. Essayez d'utiliser [[UIApplication sharedApplication] beginIgnoringInteractionEvents] lorsque vous commencez l'opération et appelez de manière appropriée [[UIApplication sharedApplication] endIgnoringInteractionEvents] APRES l'opération terminée.

+0

Merci pour vos commentaires. J'ai lu ceci ailleurs, mais cela n'empêche-t-il pas toute interaction avec l'application (ce qui n'est pas ce que j'ai l'intention de faire)? En outre, je suppose que si userInteractionEnabled est défini sur NO pour la vue de la table, le défilement de la vue table sera également désactivé. Ce n'est pas le cas. –

+0

Le défilement est activé par la vue défilement qui encapsule la vue de table. – Eimantas

+0

Pour ne pas mettre en doute votre expertise ou pour démarrer une discussion, UITableView est une sous-classe de UIScrollView. Si userInteractionEnabled est défini sur NO, la vue de table ne doit pas répondre à une entrée de l'utilisateur à mon avis. C'est ce qui se passe si je le teste dans un nouveau template Xcode, mais pour une raison quelconque, cela ne se produit pas dans mon application. Impair. Merci pour votre contribution. –