Я действительно пытаюсь заставить UIScrollView корректно работать с Autolayout. Вместо прокрутки вниз, как следует, он просто отскакивает, поэтому, если я перетащить его, чтобы увидеть больше, как только я отпущу, он вернется в исходное положение.UIScrollView с использованием Autolayout будет только отскакивать
У меня есть сцена создана следующим образом:
-main View
- Scroll View
- Содержание Просмотр
- Ярлык
- Ярлык
Контроллер просмотра имеет свой размер метрической установки, равный Freeform. В представлении «Основной вид», «Просмотр прокрутки» и «Просмотр содержимого» их высота установлена на 700, поэтому я правильно вижу макет.
В моей .h файле у меня есть выход, соединенный с UIScrollView и в моем методе viewDidLoad я делаю следующее:
Scroller.translatesAutoresizingMaskIntoConstraints = YES;
[self.Scroller setContentSize:CGSizeMake(320, 1000)];
Я попытался установить все виды ограничений на различные вещи. Обычно, когда я добавляю новый Xcode, он ворчит, что ограничения неверны и предлагает мне обновить их. Я пробовал так много различных вариантов, я не могу вспомнить их все, но вот некоторые из них:
- Закрепление высоту Scroll View
- скрепляя нижней части содержимого Вид на Scroll View - Getting UIScrollView to work with AutoLayout
- Закрепление высоту содержимого Вид
Другие вещи, которые я пробовал:
- Чтениеследующие Technote Apple: - https://developer.apple.com/library/ios/technotes/tn2154/_index.html
- Установка Содержание Inset в Scrollview в - Confusion Regarding UIScrollView and AutoLayout
- Настройка содержимого Размер: UIWebView's UIScrollView subview can scroll but bounce back to the frame without appearing vertical scroll indicator
Я уверен, что это должно быть относительно прямой, но я был рвать на себе волосы вне. Есть много подобных вопросов в Stackoverflow и Google, но ни один из них, похоже, полностью не отвечает моим требованиям.
Любая помощь или ресурсы были бы весьма признательны.
JA
Вы проверили значение contentSize после события макета, например, в viewDidAppear? – yurish
Это 0,000000. Почему это было бы, если оно установлено в 1000.000000 в представлении «Загружено»? – Jim
Все, кажется, работает нормально, если я перемещаю [self.Scroller setContentSize: ...] из метода viewDidLoad в viewDidAppear. Я не понимаю, почему, хотя viewDidLoad следует вызывать, когда он впервые создан, не так ли? – Jim