2012-11-13 2 views
1

J'ai conçu une sous-classe personnalisée de UITableView. À un certain point dans son utilisation, j'ai besoin d'ajouter un UIView comme une sous-vue directe de UITableView, faites-le glisser dans la vue de la table en utilisant mon doigt, puis retirez-le de la vue de la table. J'utilise UILongPressGestureRecognizer pour créer une vue de la même manière que l'application iOS Calendar, la faire glisser autour de la tableview en réinitialisant son cadre, puis la retirer de la vue table en l'ajoutant à une cellule.Glisser UIView en tant que sous-vue de UITableView est derrière le doigt

Cela fonctionne, mais avec une mise en garde. Quand je bouge mon doigt trop rapidement, je «perds mon emprise» sur l'UIView, et il ne me rattrape pas à moins que je ne remette mon doigt dans le cadre de la vue pour le «ramasser». Depuis UITeableView sous-classé à partir de UIScrollView, j'ai essayé de définir les propriétés delaysContentTouchs et canCancelContentTouches de vue de table à NO, tout en affectant la propriété exclusiveTouch de l'UIView à YES. Rien n'a fonctionné. En fin de compte, je veux être en mesure de faire glisser mon UIView à l'intérieur de la vue de la table avec autant de réactivité que l'application intégrée de calendrier iOS. Des pensées?

P.S. Je suis relativement nouveau dans le développement iOS, alors s'il vous plaît pardonnez s'il y a un oubli majeur ici.

Répondre

1

Problème résolu! Comme il se trouve, il n'y avait rien intrinsèquement faux avec l'installation (en ajoutant une sous-vue à un UITableView et en faisant glisser). Après avoir creusé beaucoup, j'ai découvert que j'avais effectué un hitTest chaque fois que la vue était traînée à une nouvelle coordonnée. On pourrait voir comment effectuer une telle opération intensive chaque seconde pourrait ralentir suffisamment le traitement sur l'appareil pour provoquer ce comportement étrange. Quand je l'ai changé, tout a fonctionné parfaitement. En fin de compte, la leçon à tirer était que ma sous-classe de contrôleurs de vues était trop complexe et donc difficilement lisible. Il y avait trop de creuser nécessaire pour découvrir ce problème. Depuis, j'ai pris grand soin de simplifier mon code - cela a été incroyablement gratifiant.

+0

pouvez-vous partager votre code ... je dois avoir la fonctionnalité ditto !!! –

Questions connexes