2017-01-17 8 views
0

У меня есть эта иерархия:Scrollview не прокрутка, после того, как я установил размер контента и тестирование, что он изменил

View Controller -> Вид Scroll -> Вид -> некоторых лейбл Моя точка зрения (внутри прокрутки) скрывается, когда клавиатура открыта, поэтому я использовал прокрутку для преодоления этой проблемы.

Я подключил свой вид прокрутки в качестве выхода к контроллеру View View, установил размер содержимого и активировал прокрутку. Он по-прежнему не прокручивается. Это мой взгляд код контроллера:

import UIKit 

class EditViewController: UIViewController { 

@IBOutlet weak var editScroll: UIScrollView! 

@IBAction func backButton(_ sender: UIButton) { 
    self.navigationController?.popViewController(animated: true) 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 
    editScroll.isScrollEnabled = true 
    editScroll.contentSize = (editScroll.superview?.bounds.size)! 
    print(editScroll.contentSize) // this prints the correct numbers! 

} 



} 
+0

Кадры не могут быть вычислены еще в '' 'viewDidLoad'''. Попробуйте этот код в '' 'viewDidAppear''' или даже лучше:' '' viewDidLayoutSubviews'''. EDIT: Я добавил это как ответ для ясности. –

+0

Спасибо, что сработало. Вы гений, зачем комментировать и не отвечать на это? Я буду принимать его в качестве ответа, если вы будете – Sharonica

+0

Также, если вы хотите, чтобы библиотека сторонних разработчиков подключаемого модуля обрабатывала смещение клавиатуры, я предлагаю: https://github.com/hackiftekhar/IQKeyboardManager. Не подходит для любого использования, но сохраняет много шаблонов. –

ответ

1

Кадры не могут быть вычислены еще в viewDidLoad. Поместите свой код в viewDidAppear или еще лучше: viewDidLayoutSubviews.

0

, если вы хотите, чтобы получить размер экрана, просто используйте:

UIScreen.main.bounds.size 

и есть открытый источник о клавиатуре шкуре и проблемах шоу.

может быть использован для решения этой проблемы.

https://github.com/hackiftekhar/IQKeyboardManager