UIButton dans un UITableView en-tête ignore la plupart des touches
J'ai un bouton que je suis l'ajout d'une sous-vue de la une vue de la table de tableHeaderView. Le bouton s'affiche bien, et tap-and-tenant il fonctionne par intermittence, pour la plupart, en revanche, il ne répond pas. J'ai essayé de l'ajouter en tant que sous-vue de la table elle-même; l'effet est le même. Je pensais que le problème pourrait être avec le défilement de l'affichage tactile de l'interception, mais la désactivation de défilement sur la table n'a pas d'effet non plus.
Je fais quelque chose de mal? Quelqu'un d'autre a rencontré ce?
edit pour préciser, je parle de la table principale, en-tête, pas un en-tête de section, dans un groupe de style de table; pense que, fondamentalement, calquée sur l'écran "Contact".
OriginalL'auteur Noah Witherspoon | 2008-11-17
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème. Dans mon cas, j'ai eu un conteneur de vue instancié dans de l'IB (qui a été appliquée, car la vue de la table d'en-tête dans le code), avec une UIImageView occupant la totalité de l'image de ce conteneur. Le mauvais comportement de bouton résidé dans l'affichage de l'image.
S'avère que j'ai besoin d'avoir le dimensionnement des amortisseurs IB défini comme suit...
Conteneur de Vue: extérieur ancres tous, intérieur redimensionnement - toutes les
Sous d'Affichage de l'Image: tous les boudins sur (intérieur et extérieur)
J'ai eu plusieurs vues de table, le tout à l'aide d'en-tête de vues. Certains réagir à des événements tactiles correctement, certains étaient feuilletée. Cela a résolu mon problème
-setAutoresizingMask:
, et je l'ai trouvé seulement nécessaire sur le conteneur. L'intérieure de contrôle de l'image n'a pas besoin de quoi que ce soit. Merci! N'aurait jamais tombé sur ce par accident.Après des heures de dénigrement de ma tête, cela a fonctionné pour moi. Je vous remercie.
En effet. Dans mon cas, j'ai eu quelques UITextFields dans l'en-tête qui ferait apparaître le clavier. J'ai été redimensionner ma vue de la table pour accueillir le clavier. Tout avait l'air correct visuellement et la table défile exactement comme souhaité. Toutefois, aucun de ces contrôles dans le tableau d'en-tête ont été sensibles l'une j'ai changé la taille de l'affichage de la table. Mon conteneur view n'ont à l'intérieur de mise à l'échelle. Une fois que je l'ai désactivé, tous travaillé! Merci.
OriginalL'auteur Danny Hall
J'ai eu un problème similaire, - un champ de texte et un bouton à l'intérieur d'un ensemble de vues comme la table d'en-tête de la vue qui ne serait pas répondre à des événements tactiles. setAutoResizing par programme a fonctionné pour moi.
Mon contrôleur s'étend UITableViewController, et viewDidLoad ressemble à ceci:
('MYCustomWidget" s'étend au-UIView, et "MYCustomWidgetView' est un fichier XIB).
Dans la swift 4?
OriginalL'auteur
Je suis complètement en désaccord avec Wisequark -- il n'y a absolument rien de mal de mettre un bouton dans le tableHeaderView, et dont l'un serait pas risque de votre application d'être rejeté à partir de l'app store. Le tableHeaderView est conçu pour être un arbitraire de la vue contenant quels que soient les éléments que vous choisissez.
En ce qui concerne votre question, il pourrait être que vous avez une vue sur la dissimulation de votre bouton, ou, il peut être tout simplement d'un bug qui devrait être signalé à Apple.
OriginalL'auteur August
Ma situation était similaire à Danny Hall (la table d'en-tête de la vue a été une UIImageView, et il y avait un UIButton qui était une sous-vue de la UIImageView). Dans mon cas, le problème semble avoir été provoqué par le bouton étant une sous-vue de l'affichage de l'image. Ce qui a fonctionné pour moi a été la création d'une UIView "contenant", telle que l'affichage de l'image ainsi que le bouton étaient des sous-vues du "contenant". étrange.
userInteractionEnabled
ensemble deNO
par défaut, de sorte qu'un bouton comme un sous-vue d'un affichage de l'image ne réagissent pas à la touche. Je suis sûr que ce est une question différente. Merci pour la suggestion, cependant. 🙂OriginalL'auteur cell
Curieusement, mais le tableau d'en-tête de la vue, apparemment, est redimensionnée de manière incorrecte.
J'ai utiliser la mise en page automatique, donc d'un redimensionnement automatique de masque n'était pas une option pour moi. Après l'inspection de mon point de vue de la hiérarchie:
et remarqué que mon en-tête personnalisé vue d'erreurs en hauteur, un peu moins de la moitié a été tappable (voir en surbrillance):
Manuel de la mise à jour de sa hauteur fixe le problème:
Aussi, la vue de la table d'en-tête hauteur peut devenir non valide après l'orientation est modifiée. Ce problème peut également être résolu avec la solution fournie.
OriginalL'auteur Davyd
tableHeaderView a 0 hauteur alors qu'il est en cours de traitement dessiner dans UITableView
utiliser cette UIView sous-classe pour définir la forte hauteur constante et d'ignorer UITableView traitement
OriginalL'auteur Alexey Ryabinin
J'ai le même problème
UIButtons
actions qui n'ont pas de travail dansUITableView's
vue d'en-tête. J'ai d'abord essayésetAutoresizingMask
à.None
qui ne fonctionne puis, après avoir lu les réponses de @Davyd et @Alexey je me rends compte que je n'ai pas régler la hauteur des têtes de vue, puis je l'ai mis comme:-Et tous les
UIButton's
à l'intérieur deUITableView's
vue d'en-tête fonctionne correctement.OriginalL'auteur Ravi Sharma
N'oubliez pas de mettre le pied de la hauteur:
OriginalL'auteur mskw
Vous devriez considérer que ce n'est pas le but sue de la headerView et qu'une mise en œuvre telle que pourrait entraîner le rejet de l'AppStore comme un résultat d'une HIG violation. Étant donné que les dimensions d'un en-tête sont destinés à être petit, il est probablement préférable d'envisager une restructuration de votre point de vue. Cela dit, il n'y a pas de moyen facile de le faire à court de main détecter les événements tactiles et la détermination de la géométrie de vous-même, puis l'exécution d'un sélecteur de fonction sur la géométrie, bref, rouler votre propre bouton de classe.
Plus que probable que je suggère le dépôt d'un bug.
OriginalL'auteur wisequark