У меня проблема с моим UIScrollView. Я добавляю пользовательский вид контента. У него есть некоторые ограничения, но он не прокручивается, когда мое текстовое представление расширяется. Кто-нибудь может мне помочь?
Я пробовал все, но я не знаю, как сделать UIScrollView динамическим. Я не могу найти хорошего решения. Все представления отображаются правильно. Мне нужно это на сегодня.
private lazy var nameTextFieldView: TaskNameView = {
let nameTextFieldView = TaskNameView()
nameTextFieldView.translatesAutoresizingMaskIntoConstraints = false
return nameTextFieldView
}()
private lazy var descriptionView: TaskDescriptionView = {
let descriptionView = TaskDescriptionView()
descriptionView.translatesAutoresizingMaskIntoConstraints = false
return descriptionView
}()
private lazy var notificationView: NotificationView = {
let notificationView = NotificationView()
notificationView.backgroundColor = .white
notificationView.addNotificationButton.addTarget(self, action: #selector(setDateForNewTask), for: .touchUpInside)
notificationView.translatesAutoresizingMaskIntoConstraints = false
return notificationView
}()
private lazy var mainScrollViewContentView: UIView = {
let mainScrollViewContentView = UIView()
mainScrollViewContentView.addSubview(nameTextFieldView)
mainScrollViewContentView.addSubview(notificationView)
mainScrollViewContentView.addSubview(descriptionView)
mainScrollViewContentView.translatesAutoresizingMaskIntoConstraints = false
return mainScrollViewContentView
}()
private lazy var mainScrollView: UIScrollView = {
let mainScrollView = UIScrollView()
mainScrollView.addSubview(mainScrollViewContentView)
mainScrollView.translatesAutoresizingMaskIntoConstraints = false
return mainScrollView
}()
lazy var addTaskButton: PrimaryActionButton = {
let addTaskButton = PrimaryActionButton()
addTaskButton.setTitle("Save".uppercased(), for: .normal)
addTaskButton.addTarget(self, action: #selector(saveNewTask), for: .touchUpInside)
return addTaskButton
}()
private func setupLayout() {
view.backgroundColor = .groupTableViewBackground
view.addSubview(mainScrollView)
view.addSubview(addTaskButton)
NSLayoutConstraint.activate([
mainScrollView.topAnchor.constraint(equalTo: view.topAnchor),
mainScrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
mainScrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
mainScrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
mainScrollView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
mainScrollView.centerYAnchor.constraint(equalTo: view.centerYAnchor),
mainScrollViewContentView.topAnchor.constraint(equalTo: mainScrollView.topAnchor),
mainScrollViewContentView.leadingAnchor.constraint(equalTo: mainScrollView.leadingAnchor),
mainScrollViewContentView.trailingAnchor.constraint(equalTo: mainScrollView.trailingAnchor),
mainScrollViewContentView.bottomAnchor.constraint(equalTo: mainScrollView.bottomAnchor),
mainScrollViewContentView.centerXAnchor.constraint(equalTo: mainScrollView.centerXAnchor),
mainScrollViewContentView.centerYAnchor.constraint(equalTo: mainScrollView.centerYAnchor),
nameTextFieldView.topAnchor.constraint(equalTo: mainScrollViewContentView.topAnchor, constant: 0),
nameTextFieldView.leadingAnchor.constraint(equalTo: mainScrollViewContentView.leadingAnchor, constant: 0),
nameTextFieldView.trailingAnchor.constraint(equalTo: mainScrollViewContentView.trailingAnchor, constant: 0),
notificationView.topAnchor.constraint(equalTo: nameTextFieldView.bottomAnchor, constant: 20),
notificationView.leadingAnchor.constraint(equalTo: mainScrollViewContentView.leadingAnchor, constant: 0),
notificationView.trailingAnchor.constraint(equalTo: mainScrollViewContentView.trailingAnchor, constant: 0),
descriptionView.topAnchor.constraint(equalTo: notificationView.bottomAnchor, constant: 20),
descriptionView.leadingAnchor.constraint(equalTo: mainScrollViewContentView.leadingAnchor, constant: 0),
descriptionView.trailingAnchor.constraint(equalTo: mainScrollViewContentView.trailingAnchor, constant: 0),
addTaskButton.centerXAnchor.constraint(equalTo: view.centerXAnchor),
addTaskButton.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor, constant: -30),
addTaskButton.heightAnchor.constraint(equalToConstant: 50),
addTaskButton.widthAnchor.constraint(equalToConstant: 250)
])
}
override func viewDidLoad() {
super.viewDidLoad()
title = "New task"
setupLayout()
}