自定义视图在addSubview之后不可单击

时间:2019-05-25 20:01:20

标签: swift uitableview uiview

查看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)
        ])
}

newFormUIView笔尖,在笔尖情节提要中添加了按钮和textFields

1 个答案:

答案 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

您的框架无效并且无法接收触摸