查看addSubview
之前的层次结构:
View> TableView
查看addSubview
之后的层次结构:
视图> TableView &&视图> CustomView
调用addSubview
后,由于CustomView的框架较小,因此它显示在TableView的顶部,并在TableView之后添加。但是,我在CustomView中有按钮和文本字段,但都不起作用。即使当我点击CustomView时,TableView的scrollView似乎也正在捕获tapGesture。如何使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
是UIView
笔尖,在笔尖情节提要中添加了按钮和textFields
答案 0 :(得分:1)
您需要添加宽度和高度限制
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
您的框架无效并且无法接收触摸