web-dev-qa-db-fra.com

La vue de défilement ne fonctionne pas IOS 7

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 !!

28
bharath

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.

enter image description here

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:

enter image description here

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:

enter image description here

3) Épinglez la vue du contenu à sa vue de défilement parent comme indiqué ci-dessous:

enter image description here

4) Réglez les mesures simulées de votre UIViewController sur Freeform (c'est important):

enter image description here

5) Dimensionnez votre contenu UIView à la hauteur souhaitée (évidemment aussi important):

enter image description here

Article d'Apple expliquant UIScrollView et AutoLayouts: https://developer.Apple.com/library/content/technotes/tn2154/_index.html

102
Yas T.