Swift 添加子视图后,自定义视图不可单击
在添加子视图之前查看层次结构: 视图>表格视图 添加子视图后的视图层次结构: 视图>表格视图和视图>自定义视图 调用Swift 添加子视图后,自定义视图不可单击,swift,uitableview,uiview,Swift,Uitableview,Uiview,在添加子视图之前查看层次结构: 视图>表格视图 添加子视图后的视图层次结构: 视图>表格视图和视图>自定义视图 调用addSubview后,CustomView显示在TableView的顶部,因为它的框架较小,并且是在TableView之后添加的。但是,我在CustomView中有按钮和文本字段,它们都不起作用。即使在我点击CustomView时,TableView的scrollView似乎也捕捉到了点击手势。如何使CustomView的按钮和文本字段接受触摸 此外,CustomView的背景色
addSubview
后,CustomView显示在TableView的顶部,因为它的框架较小,并且是在TableView之后添加的。但是,我在CustomView中有按钮和文本字段,它们都不起作用。即使在我点击CustomView时,TableView的scrollView似乎也捕捉到了点击手势。如何使CustomView的按钮和文本字段接受触摸
此外,CustomView的背景色是清晰的,当CustomView添加到视图层次结构中时,它会显示下面的tableView。我尝试在故事板中设置背景色,并通过编程实现,但仍然无法清除。我怎样才能解决这个问题
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
是一个ui视图
nib,在nib脚本中添加了按钮和文本字段您需要添加宽度和高度约束
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
您的帧在接收触摸时无效且不活动显示您是如何添加的,vc是否也是UITableViewController?@Sh_Khan代码已添加,否vc是一个UIViewController,根据您提供的信息,在故事板中添加了UITableView,转到
Main.storyboard
并选择该CustomView
,然后转到Attributes Inspector
并单击用户交互启用
复选框上的勾选。如果已经勾选,则检查post。它解释了如何将视图带到堆栈顶部。@Mihir只是尝试了一下,没有成功。我知道,CustomView``位于顶部是因为1。如果
CustomView``不在顶部,我将无法看到按钮和标签,因为它们将被tableView
和2隐藏。我在Xcode中使用了视图层次结构调试,以确保整个CustomView
在addSubview
之后位于视图层次结构的顶部。我是个白痴哈哈,我生命中的一个小时已经过去了,非常感谢!