UIScrollView horizontal à l'intérieur de UITableViewCell personnalisé - en utilisant Storyboard IB - Pas de défilement
L'objectif principal est d'être capable de faire défiler chaque ligne du contenu horizontalement.
Je suis en train de le faire avec un Code X 5 et en utilisant la table de montage séquentiel.
Le problème semble être simple, mais après de nombreuses heures de recherche je n'ai rien, sauf pour un problème qui est un peu similaire, mais en utilisant programatic seule approchevoir ici.
De l'IB, j'ai de la structure, comme indiqué dans le dessin ci-dessous.
- La taille du contenu de la scrollview dans l'ensemble de {5000, 500} définir à la fois de l'IB et dans le code
- La scrollview cadre est {0,0}{320,44}
- Les étiquettes d'image est réglée sur {20,0}{500,44}
J'ai également fourni un exemple de projet dans un dépôt github. L'exemple inclut également un "normal" scrollview de travail à l'extérieur de uitableviewcell.
Veuillez vous dire que j'ai oublié quelque chose de très basique.
source d'informationauteur marco alves
Vous devez vous connecter pour publier un commentaire.
Mise en page automatique est activé (ce qui est une bonne chose) dans votre storyboard.
Le défilement de la taille d'un UIScrollView est calculée en fonction des contraintes de son sous-vues.
Si vous avez besoin d'ajouter "en haut, en bas, la direction, l'espace arrière pour superview" sur le UIImageView à l'intérieur de la UIScrollView. Ils peuvent être mis à 0.
Maintenant, si vous n'ajoutez pas de contrainte à la UIImageView puis son intrinsicContentSize taille sera utilisé.
Vos contraintes devrait ressembler à ceci:
Notez que vous sont également absents des contraintes sur l'affichage du contenu de votre cellule.
Lorsque vous en avez terminé avec les contraintes, de supprimer tous les setContentSize: les appels à partir de votre code.
Une autre solution pour cela est d'utiliser UICollectionView à l'intérieur d'un personnalisé UITableViewCell
J'ai eu le même problème, et a constaté que la suppression de la scrollview contenu de la vue et de l'ajouter à nouveau des œuvres:
Ce n'est pas la solution la plus élégante, mais cela fonctionne pour moi.
Avec sa nouvelle mise en page automatique mode, iOS 7 semble avoir brisé beaucoup de iOS 6 et les versions antérieures des applications qui utilisent le UIScrollView. J'ai posté une question similaire récemment [maintenant mis en attente par les modérateurs - de sorte que vous pourriez ne pas être en mesure de le voir] où l'utilisateur Lv.BeLeCk trouvé le succès en utilisant:
dans la vue contrôleur de la tenue de la scrollview. Il suffit de le mettre après le défilement de la vue de l'instanciation. Voir si cela fonctionne, et si c'est le cas, veuillez upvote sa contribution.
Je pense que la cause est que lors de l'instanciation UIScrollViews sont en train de mettre à jour leurs tailles en fonction de leur contenu actuel, contrairement à avant où ils ont juste laissé l'Enfer seul.
Pourquoi Apple voulait de coucher avec qui je ne sais pas. Je suis toujours en attente pour le haut et le bas de l'alignement pour le multi-étiquettes de ligne de!
Assurer
setContentSize
est appelé dansviewDidLayoutSubviews
et dansscrollViewDidEndZooming:withView:atScale:
. Dans iOS6, si vous n'avez pas le code de ces méthodes, le comportement par défaut a bien fonctionné, dans iOS7 avec le nouveau système de mise en page, ils sont nécessaire. Il peut être appelé plus d'une fois pour une installation, il suffit de garder appelsetContentSize
.Je ne peux pas accéder à votre
Storyboard
avec mon xCode 4.Tout d'abord, vous devez connecter l'
UITableView
avec votreViewController
. LeUITableViewCell
est à l'intérieur de votreUITableView
. C'est pourquoi vous devriez essayer de modifier les paramètres de votreUITableView
. Après la connexion, vous devriez essayer de changer lecontentinset
de votreUITableView
comme ceci:Si cela ne fonctionne pas, vous pouvez également essayer de modifier la taille du contenu de votre TableView. Peut-être que vous avez aussi de changer la taille de votre
UIView
avant qu'il fonctionne.J'ai corrigé la situation, par le biais de l'IB.
Je doit avoir la même valeur à l'intérieur de "l'Identité de la section Valeur - Défini par l'Utilisateur Runtime Attributs" avec la clé "image - Rect - CGRectValue" égal à "Taille de l'inspecteur de l'Affichage des valeurs".
J'espère que cela vous aidera.
J'ai le même problème aujourd'hui.
Après quelques heures, vous continuez à trouver, il est résolu en changeant la cellule de sélection par Défaut à partir de Rien.
Espérons qu'il aidera les autres.