2015-04-25 4 views
0

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

Прежде всего, контент начинается дальше по экрану, чем он должен быть. Похоже, что он прокручивается вниз на 64 пикселя под панелью навигации (высота навигационной панели). Как я могу получить его так, чтобы он начинался прямо под панелью навигации?

Кроме того, у меня есть три кнопки в представлении, которые не вызывают их функции при нажатии. Я предполагаю это, потому что я допустил ошибку с размером UIScrollView. Кнопки работают, если я перемещаю их внутри основного фрейма (размер экрана).

Это мой код:

override func viewDidLoad() { 
    super.viewDidLoad() 

    scrollView.contentSize = CGSize(width: view.bounds.width, height: 1200) 
} 

override func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 
    scrollView.frame = CGRect(x: 0, y: 0, width: view.bounds.width, height: view.frame.height) 
} 

UPDATE:

Я исправил проблему с кнопками. Я забыл установить высоту представления, что объекты были помещены внутри UIScrollView. Тем не менее, проблема не была решена с отправной точкой, хотя, если у кого есть идеи?

ответ

0

Если вы установили контрольные точки в свой код, вы заметите, что viewDidLayoutSubviews get получил имя после viewDidLoad. эффективно, когда вы устанавливаете scrollView.contentSize в viewDidLoad, кадр представлений не будет загружен, и из-за этого CGSize (width: view.bounds.width, height: 1200) потенциально будет задан размер контента {0, 1200} ,

Вы хотите переместить свой код контента в после, вы обновляете рамку scrollView внутри метода viewDidLayoutSubviews.

Что касается первой части вашего вопроса, вам может потребоваться ознакомиться с содержимым ContentInset UIScrollView.

Надеюсь, это поможет!

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