gpt4 book ai didi

swift - 添加 subview 后自定义 View 不可点击

转载 作者:行者123 更新时间:2023-11-28 13:38:41 24 4
gpt4 key购买 nike

addSubview 之前的 View 层次结构:

View > 表格 View

addSubview 之后的 View 层次结构:

View > 表格 View && View > 自定义 View

调用addSubview后,CustomView显示在TableView之上,因为它的frame较小,是在TableView之后添加的。但是,我在 CustomView 中有按钮和文本字段,它们都不起作用。即使当我点击 CustomView 时,TableView 的 scrollView 似乎也在捕获 tapGesture。我怎样才能使 CustomView 的按钮和文本字段接受触摸?

此外,CustomView 的背景颜色很清晰,当 customView 添加到 View 层次结构时,会显示下方的 tableView。我尝试在 Storyboard 中以编程方式设置背景颜色,但它仍然停留在清晰状态。我该如何解决这个问题?

class masterViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

//blah blah
@IBOutlet weak var tableView: UITableView! // tableView is added in the storyboard

let newForm = NewFormView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))
newForm.backgroundColor = UIColor.white
self.view.addSubview(newForm)
newForm.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
newForm.centerXAnchor.constraint(equalTo: self.view.centerXAnchor),
newForm.centerYAnchor.constraint(equalTo: self.view.centerYAnchor)
])
}

newForm 是一个 UIView nib,在 nib Storyboard中添加了按钮和文本字段

最佳答案

需要添加宽高限制

NSLayoutConstraint.activate([
newForm.centerXAnchor.constraint(equalTo: self.view.centerXAnchor),
newForm.centerYAnchor.constraint(equalTo: self.view.centerYAnchor),
newForm.widthAnchor.constraint(equalToConstant:300),
newForm.heightAnchor.constraint(equalToConstant:300)
])

当你做的时候

newForm.translatesAutoresizingMaskIntoConstraints = false

你的框架变得无效并且在接收触摸时不活跃

关于swift - 添加 subview 后自定义 View 不可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56308279/

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