Если ни одно из других решений не работает для вас, дважды проверьте, действительно ли ваше представление прокрутки является UIScrollView
в Интерфейсном Разработчике.
В какой-то момент в последние несколько дней мой UIScrollView
самопроизвольно изменил тип на UIView
, хотя его класс сказал UIScrollView
в инспекторе. Я использую Xcode 5.1 (5B130a)
.
Вы можете либо создать новый вид прокрутки и скопировать измерения, настройки и ограничения из старого вида, либо вручную изменить вид на UIScrollView
в файле xib
. Я сделал сравнение и обнаружил следующие отличия:
Оригинал:
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" directionalLockEnabled="YES" bounces="NO" pagingEnabled="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Wsk-WB-LMH">
...
</scrollView>
После того, как тип самопроизвольно изменился:
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" customClass="UIScrollView" id="qRn-TP-cXd">
...
</view>
Поэтому я заменил строку <view>
своей исходной строкой <scrollView>
.
Я также заменил тег закрытия представления </view>
на </scrollView>
.
Обязательно сохраните идентификатор таким же, как текущий вид, в этом случае: id = "qRn-TP-cXd".
Мне также пришлось удалить xib из кэша Xcode, удалив производные данные приложения:
Xcode->Window->Organizer->Projects
, выберите свой проект, в строке Производные данные нажмите Удалить ...
или при использовании устройства:
Xcode->Window->Organizer->Device
, выберите свое устройство-> Приложения, выберите приложение, нажмите (-)
Теперь очистите проект и удалите приложение из симулятора / устройства:
Xcode->Product->Clean
- iOS
Simulator/device->press
и удерживайте app->click
(X), чтобы удалить его
После этого вы сможете создавать и запускать приложение и снова иметь возможность прокрутки.
P.S. Мне не нужно было устанавливать размер содержимого представления прокрутки в viewDidLayoutSubviews
или отключать автоматический макет, но YMMV.