Ios UITableview在使用TranslatesAutoResizengMaskinToConstraints=false时停止响应

Ios UITableview在使用TranslatesAutoResizengMaskinToConstraints=false时停止响应,ios,uitableview,swift3,Ios,Uitableview,Swift3,我想在代码中添加一个包含tableview的视图。 我在故事板中定义视图,如图所示。 在我的视图控制器中,我使用以下代码设置位置和大小 override func viewDidLoad() { super.viewDidLoad() // bunch of non-related code timeTableView.delegate = self timeTableView.dataSource = self timeTableView.rowH

我想在代码中添加一个包含tableview的视图。 我在故事板中定义视图,如图所示。

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

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.TranslatesAutoResizezingMaskintoConstraints=false

他在场。删除它会打破定位约束,但tableview的行为正常


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

您需要给
时间选择器设置限制,以确定其
宽度和
高度。最好设置
右侧
底部
约束

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

我确实使用了高度和宽度约束,在代码示例中注释掉了这些约束,但它们没有任何区别。不过,我会试试你的建议。你最好使用右侧和底部约束,让屏幕大小确定宽度和高度。您的约束中包含小于和大于,这使系统可以自由选择不适合您的内容,例如0。右侧和底部约束适用于高度和宽度不适用的情况。奇怪的是,一定是自动布局在TableView中的工作方式有问题。我必须修正这一点:高度和宽度约束可以使用,但我忘了设置UITableview相对于其superview时间选择器的约束。这导致响应区域小于显示的文本。