Si aucune des autres solutions ne fonctionne pour vous, vérifiez que votre vue de défilement est bien une UIScrollView dans Interface Builder.
À un moment donné au cours des derniers jours, mon UIScrollView type a spontanément changé en a UIView, même si sa classe a dit UIScrollViewdans l'inspecteur. J'utilise Xcode 5.1 (5B130a).
Vous pouvez soit créer une nouvelle vue de défilement et copier les mesures, les paramètres et les contraintes de l'ancienne vue, soit changer manuellement votre vue en a UIScrollViewdans le xibfichier. J'ai fait une comparaison et j'ai trouvé les différences suivantes:
Original:
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" directionalLockEnabled="YES" bounces="NO" pagingEnabled="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Wsk-WB-LMH">
...
</scrollView>
Après que le type a changé spontanément:
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" customClass="UIScrollView" id="qRn-TP-cXd">
...
</view>
J'ai donc remplacé la <view>ligne par ma <scrollView>ligne d' origine .
J'ai également remplacé la balise de fermeture de la vue </view>par </scrollView>.
Assurez-vous de garder l'identifiant identique à la vue actuelle, dans ce cas: id = "qRn-TP-cXd".
J'ai également dû vider le xib du cache de Xcode en supprimant les données dérivées de l'application:
Xcode->Window->Organizer->Projects, choisissez votre projet, sur la ligne Données dérivées, cliquez sur Supprimer ...
Ou si vous utilisez un appareil:
Xcode->Window->Organizer->Device, choisissez votre appareil-> Applications, choisissez votre application, cliquez sur (-)
Nettoyez maintenant le projet et supprimez l'application du simulateur / de l'appareil:
Xcode->Product->Clean
- iOS
Simulator/device->presset maintenez le app->click(X) pour le supprimer
Vous devriez alors pouvoir créer et exécuter votre application et avoir à nouveau la fonctionnalité de défilement.
PS Je n'ai pas eu à définir la taille du contenu de la vue de défilement viewDidLayoutSubviewsou à désactiver la mise en page automatique, mais YMMV.