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 UIScrollView
dans 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 UIScrollView
dans le xib
fichier. 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->press
et 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 viewDidLayoutSubviews
ou à désactiver la mise en page automatique, mais YMMV.