gpt4 book ai didi

ios - 当我展开 UITextView 时,滚动不起作用

转载 作者:行者123 更新时间:2023-11-28 07:24:47 25 4
gpt4 key购买 nike

我的 UIScrollView 有问题。我添加自定义内容 View 。它有一些限制,但当我的 TextView 正在扩展时它不会滚动。有人可以帮助我吗?

我尝试了所有方法,但我不知道如何使 UIScrollView 动态化。我找不到任何好的解决方案。所有 View 都正确显示。我今天需要这个。

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()
}

最佳答案

1) 从上到下设置你的 ScrollView 约束

2) 将你的 firstview leadingAnchor 设置为 scrollview leadingAnchor

3) 最后一个按钮 bottomAnchor 设置为 scrollview bottom

 NSLayoutConstraint.activate([

scrollView.leftAnchor.constraint(equalTo: view.leftAnchor),
scrollView.rightAnchor.constraint(equalTo: view.rightAnchor),
scrollView.topAnchor.constraint(equalTo: stausBarView.bottomAnchor),
scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor),

customheaderView.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor),
customheaderView.leftAnchor.constraint(equalTo:view.leftAnchor),
customheaderView.rightAnchor.constraint(equalTo:view.rightAnchor),
customheaderView.topAnchor.constraint(equalTo:scrollView.topAnchor, constant: 20),
customheaderView.heightAnchor.constraint(equalToConstant: 60),

titleLbl.leftAnchor.constraint(equalTo: customheaderView.leftAnchor, constant: 12),
titleLbl.rightAnchor.constraint(equalTo: cancelBT.leftAnchor, constant: -12),
titleLbl.centerYAnchor.constraint(equalTo: customheaderView.centerYAnchor),


loginBT.widthAnchor.constraint(lessThanOrEqualTo: scrollView.widthAnchor, constant:-24),
loginBT.topAnchor.constraint(equalTo: registerBT.bottomAnchor, constant: 20),
loginBT.centerXAnchor.constraint(equalTo: view.centerXAnchor),

loginBT.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor, constant: -16),

])

关于ios - 当我展开 UITextView 时,滚动不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56915551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com