Итак, я просмотрел почти все ответы StackOverflow на этот конкретный вопрос и даже просмотрел учебники, которые якобы научат вас, как использовать вид прокрутки, но это, кажется, не применяются для моего проекта ..UIScrollView не прокручивается вообще при добавлении программно в Swift?
Здесь это то, что я знаю до сих пор, для того, чтобы Scroll View правильно работал, вам сначала нужно предоставить ему размер контента. Это определяет прокручиваемую высоту и т. Д.
Я предоставил некоторый код, чтобы дать вам все лучшее представление о том, как я добавляю указанные элементы в свой scrollview. Если есть что-то, что я делаю неправильно, или если есть лучший способ сделать это, пожалуйста, дайте мне знать, я все еще довольно новичок в разработке Swift и iOS, и, на мой взгляд, мне кажется, что я делаю это правильно.
шаги я беру
- Создать элементы, которые я хочу, чтобы отобразить (полей ввода, Imageviews и т.д ..)
- Добавить сказал детали к мнению ViewController. (View.addsubview (и т.д ..))
- Создать Scrollview и установить его ограничение, чтобы быть таким же, как экран/зрение
- Добавьте наш взгляд всех элементов в нем в указанном виде прокрутки
- Расслабьтесь и все должно получиться отлично ?????
Вот мой код, я знаю, что это может быть длительным, но я думаю, что это может быть необходимо для того, что сфера моего вопроса понимается
class JobRegistrationController: UIViewController {
// ... Omitted for clarity
lazy var scrollView: UIScrollView = {
let view = UIScrollView(frame: UIScreen.main.bounds)
view.backgroundColor = .red
view.contentSize = CGSize(width: self.view.bounds.width, height: self.view.bounds.height * 2)
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
//... Omitted for clarity
let scrollContentView: UIView = {
let view = UIView()
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
// Need so that view controller is not behind nav controller
self.edgesForExtendedLayout = []
view.addSubview(scrollView)
scrollView.addSubview(scrollContentView)
scrollContentView.addSubview(jobTypeField)
scrollContentView.addSubview(jobTypeDividerLine)
// x, y, width and height constraints
scrollView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
scrollView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
scrollView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
scrollView.heightAnchor.constraint(equalTo: view.heightAnchor).isActive = true
// x, y, width and height constraints
scrollContentView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
scrollContentView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
scrollContentView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
scrollContentView.heightAnchor.constraint(equalTo: view.heightAnchor).isActive = true
// x, y, width and height constraints
jobTypeField.leftAnchor.constraint(equalTo: scrollContentView.leftAnchor, constant: 20).isActive = true
jobTypeField.topAnchor.constraint(equalTo: scrollContentView.topAnchor).isActive = true
jobTypeField.rightAnchor.constraint(equalTo: scrollContentView.rightAnchor, constant: -8).isActive = true
jobTypeField.heightAnchor.constraint(equalToConstant: 30).isActive = true
// x, y, width and height constraints
jobTypeDividerLine.leftAnchor.constraint(equalTo: scrollContentView.leftAnchor, constant: 20).isActive = true
jobTypeDividerLine.topAnchor.constraint(equalTo: jobTypeField.bottomAnchor).isActive = true
jobTypeDividerLine.rightAnchor.constraint(equalTo: scrollContentView.rightAnchor).isActive = true
jobTypeDividerLine.heightAnchor.constraint(equalToConstant: 0.5).isActive = true
Привет, спасибо за предложение.Когда я просматриваю, на мой взгляд, я вижу, что полоса прокрутки перемещается вверх и вниз, но содержимое моего представления не перемещается. –
@EdwardLim Это еще одна проблема. Решение для этого состоит в том, чтобы поместить все ваши подпрограммы внутри одного UIView, чтобы вы включили единый UIView в качестве подсмотра внутри scrollView. Избегайте наличия всех подзонов внутри scrollView без единого UIView «scrollContentView» для всех них. В противном случае вы столкнетесь с массивными ошибками, как вы описали, например. –
Привет, пожалуйста, предложите, как это сделать правильно? Я уже попытался добавить представление в прокрутку, но, похоже, он делает то же самое. –