2016-07-05 4 views
0

Я пытаюсь работать UIScrollView, но у меня есть некоторые трудности. Когда я пытаюсь прокручивать, ничего на моем экране не движется вообще.UIScrollView: ничего не прокручивается

Предупреждений о недопустимости содержания недопустимого размера контента, что заставляет меня поверить, что я правильно установил свой размер контента, и ограничения (надеюсь) прекрасны (у меня есть представление, содержащее вид прокрутки, который содержит одно представление, которое имеет 4 текстовых поля и текстовое поле).

Я попытался программно установить размер содержимого, чтобы быть действительно большим, используя viewDidLayoutSubviews(), но это тоже не помогло.

Я добавил в этих методах:

func scrollViewWillBeginDragging(scrollView: UIScrollView) { 
    print("touch detected") 
} 

func scrollViewDidScroll(scrollView: UIScrollView) { 
    print("scrolling happened") 
} 

И когда я бегу мое приложение и попытаться вручную прокручивать, «обнаружен сенсорный» печатается один раз и «скроллинг случилось» печатает много раз. Я так озадачен, потому что кажется, что правильные методы вызываются, но я не вижу прокрутки вообще.

Кроме того, у меня есть этот метод:

func keyboardWasShown(aNotification: NSNotification) { 
    let info = aNotification.userInfo 
    let kbSize = info![UIKeyboardFrameBeginUserInfoKey]?.CGRectValue().size 
    let contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize!.height, 0.0) 
    scrollView.contentInset = contentInsets 
    scrollView.scrollIndicatorInsets = contentInsets 
} 

Однако, даже при нажатии на текстовое поле, который получает прикрывалось с помощью клавиатуры, мой экран не прокручивается вверх.

Я попытался реализовать много решений от поиска здесь, но кажется, что ничего не помогает. Если у кого-то есть идеи о том, что может пойти не так, я бы очень оценил это! Огромное спасибо!!

+0

Вы действительно должны показать код для того, как вы настроите вид прокрутки и его содержимое. – Wain

+0

Я сделал это через раскадровку ... Я не совсем уверен, как это показать? Должен ли я скриншот ограничений? – Rani

ответ

0

Вид прокрутки - это нечто вроде исключительного случая с автозапуском. Убедитесь, что у вас установлены ваши ограничения, как описано в Technical Note TN2154.

Кроме того, если ваши методы делегата указывают на прокрутку, но вы не видите перемещение содержимого, проверьте, что контент на самом деле является подвью в представлении прокрутки, а не подвью в представлении прокрутки. это просто наложение вида прокрутки.

Помните, что UIKit следует использовать только в основном потоке - странное поведение со списком прокрутки является одним из симптомов попытки использовать UIKit из фонового потока.

Наконец, используйте the view debugger built into Xcode для проверки иерархии представления во время выполнения.

+0

Насколько я могу судить, мои ограничения настроены таким образом, и мой контент на самом деле является подвью. Как я узнаю, использую ли я UIKit в фоновом потоке? Кроме того, я немного новичок в этом, поэтому могу ли я получить дополнительные указания относительно того, как использовать отладчик, чтобы выяснить, что с этим не так? Спасибо за помощь!! – Rani

+0

Получил это! На самом деле это было что-то не так с моими ограничениями, верхняя часть контента в моем представлении контента была привязана к чему-то вне scrollview, и этого не должно было быть. Огромное спасибо!! – Rani

+0

Если вы не знаете, используете ли вы фоновый поток, то почти наверняка нет. Вы просто нажимаете кнопку отладки просмотра и смотрите на свой вид, как в [этом видео] (https://www.youtube.com/watch?v=KUjbhGOV7DM). – Jim

Смежные вопросы