首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义视图在addSubview后不可单击

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

Stack Overflow用户
提问于 2019-05-25 20:01:20
回答 1查看 113关注 0票数 0

addSubview之前的视图层次结构

视图> TableView

addSubview后的视图层次结构

视图> TableView && View > CustomView

调用addSubview后,CustomView显示在TableView的顶部,因为它的帧更小,并且在TableView之后添加。但是,我在CustomView中有按钮和文本字段,这些按钮和文本字段都不能工作。即使我点击CustomView,TableView的scrollView似乎也在捕捉tapGesture。如何使CustomView的按钮和文本字段接受触摸?

此外,CustomView的背景色是清晰的,在将customView添加到视图层次结构时,显示了下面的customView。我试着在故事板中设置背景颜色,并以编程的方式,但它仍然停留在清晰。我怎么才能解决这个问题?

代码语言:javascript
复制
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添加到笔尖故事板中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-25 20:11:57

您需要添加宽度和高度约束。

代码语言:javascript
复制
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)
])

就像你做的那样

代码语言:javascript
复制
newForm.translatesAutoresizingMaskIntoConstraints = false

您的帧变得无效,并且在接收触摸时不活跃。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56308279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档