使用translatesAutoresizingMaskIntoConstraints = false时,UITableview停止响应

时间:2017-01-29 20:43:25

标签: ios uitableview swift3

我想在代码中添加一个带有tableview的视图。 我在故事板中定义视图,如图像中所示。 timechooser in storyboard

在我的视图控制器中,我使用以下代码设置位置和大小。

override func viewDidLoad() {
    super.viewDidLoad()
    // bunch of non-related code

    timeTableView.delegate = self
    timeTableView.dataSource = self

    timeTableView.rowHeight = UITableViewAutomaticDimension
    timeTableView.estimatedRowHeight = 32

    timeChooser.translatesAutoresizingMaskIntoConstraints=false
}



@IBAction func onTimeLabelPressed(_ sender: AnyObject){
    view.addSubview(timeChooser)
    let topConstraint = timeChooser.topAnchor.constraint(equalTo: viewdayTime.bottomAnchor)
    let leftConstraint = timeChooser.leftAnchor.constraint(equalTo: viewdayTime.leftAnchor)
    //let heightConstraint = timeChooser.heightAnchor.constraint(greaterThanOrEqualToConstant: 128)
    //let widthConstraint = timeChooser.widthAnchor.constraint(lessThanOrEqualTo: viewdayTime.widthAnchor)
    NSLayoutConstraint.activate([topConstraint,leftConstraint, /*heightConstraint, widthconstraint*/])
    view.layoutIfNeeded()
    timeChooser.alpha=0
    UIView.animate(withDuration: 0.2){
        self.timeChooser.alpha=1.0}
}

onTimeLabelPressed函数使视图显示在标签下面和左边对齐。

问题是只要行

,tableview就不会滚动或响应
  

timeChooser.translatesAutoresizingMaskIntoConstraints =假

存在。删除它会破坏定位约束,但tableview表现正常。

有人有什么想法吗?没有找到任何描述我目击行为的问题。

1 个答案:

答案 0 :(得分:0)

您需要提供timeChooser个约束来建立widthheight。最好设置rightbottom约束。

let rightConstraint = timeChooser.rightAnchor.constraint(equalTo: view.rightAnchor)
let bottomConstraint = timeChooser.bottomAnchor.constraint(equalTo: view.bottomAnchor)