J'ai un scrollview à l'intérieur duquel j'ai 20 UItextviews. Le scrollview ne fonctionne pas. J'ai défini ce qui suit dans viewdidload.
self.MainScroll.contentSize = CGSizeMake(320, 1800);
Pourtant, il ne défile pas. Cependant, si je donne un rebond vertical, il ne fait que rebondir. Mon scrollview est un enfant de l'interface utilisateur principale de dimension 320 * 600. Veuillez indiquer comment activer le défilement !!
Il existe deux façons de faire fonctionner le défilement.
Approche 1 (avec code):
1) Épinglez UIScrollView
sur les côtés de sa vue parent, comme mentionné ci-dessous.
2) Définissez la taille du contenu de votre vue de défilement dans viewDidLayoutSubviews
:
- (void)viewDidLayoutSubviews {
self.MainScroll.contentSize = CGSizeMake(320, 1800);
}
Approche 2 (IB pur, aucun code requis):
1) La définition de contentSize
n'est pas requise si vous utilisez AutoLayout
. Vous devez épingler votre UIScrollView
à la vue parent comme mentionné ci-dessous:
2) Ajoutez ensuite un autre UIView
dans UIScrollView pour agir en tant que vue de contenu et l'épingler à UIScrollView et déplacer tous les contrôles à l'intérieur de cette vue de contenu:
3) Épinglez la vue du contenu à sa vue de défilement parent comme indiqué ci-dessous:
4) Réglez les mesures simulées de votre UIViewController sur Freeform (c'est important):
5) Dimensionnez votre contenu UIView
à la hauteur souhaitée (évidemment aussi important):
Article d'Apple expliquant UIScrollView et AutoLayouts: https://developer.Apple.com/library/content/technotes/tn2154/_index.html