2017-01-03 1 views
0

J'ai ce problème étrange. Pour commencer tout cela, voici comment ma vue hiérarchique ressemble à:Touches ne fonctionne pas sur UITableView à l'intérieur UIScrollView

J'ai un UIViewController avec un UIScrollView avec trois ContainerView's séparés à l'intérieur. Chacun des ContainerView'sframes (et UIViewControllers) est défini par programme. J'ouvre le second ContainerView avec une méthode UIView.animate(...). À l'intérieur de ce UIView/UIViewController j'ai un UITableView. Le problème est que seuls les cinq premiers (et la moitié de la sixième pour une raison quelconque, mais peut-être c'est un indice) UITableViewCell's sont sélectionnables. J'ai environ cinq plus UITableViewCell's qui est pour une raison non sélectionnable.

Je n'ai aucun UITapGestureRecognizer's qui a été le problème pour d'autres personnes que j'ai vues. En outre, si j'ajoute le TouchesBegan au UITableView ou au UIViewController en le maintenant, il se comporte de la même manière. Cela veut dire, il ne s'imprime que lorsque je touche la même partie de l'écran où les UITableViewCell' sont sélectionnables.

Y a-t-il quelqu'un qui a rencontré le même problème ou quelque chose de similaire qui peut éclaircir cela?

Toute aide, contribution ou réflexion est très appréciée.

Répondre

0

J'ai donc résolu ce problème. Pour toute autre personne ayant des problèmes similaires, c'était parce que le contenu sous-jacent du UISrollView n'était pas assez grand.

Même si le UITableView, et même les vues sous elle était visible, touche ne pouvait l'atteindre puisque ceux-ci sont enregistrés en quelque sorte par la UIScrollView contentView (pour moi, ce fut un UIView j'ai ajouté dans le Interface Builder en haut de la UIScrollView).

De plus, si vous travaillez avec autoLayout, vous devez modifier les contraintes contentViews dans Interface Builder car UIScrollView.contentSize ne prendra pas la peine d'écouter vos commandes.