将tableview的底部锚定到容器视图的顶部

时间:2016-08-26 13:31:30

标签: ios swift uitableview

我正在搜索如何将tableview的底部锚定到容器视图的顶部,这位于我视图的底部,因此当我按下文本字段时,容器视图显示出来,其中包含一个文本字段和一个按钮。但是当我在容器视图中写入消息时,如何才能看到tableview的底部?当带有文本字段和按钮的容器出现时,有点像自动滚动到tableview的底部,所以我可以看到最后一个单元格。

以下是容器视图的代码:

lazy var inputTextField: UITextField = {
    let textField = UITextField()
    textField.placeholder = "Enter message..."
    textField.translatesAutoresizingMaskIntoConstraints = false
    textField.delegate = self

    textField.frame.size.width = 150.0
    return textField
}()


lazy var sendButton: UIButton = {
    let boton = UIButton(type: .System)
    boton.setTitle("Delete", forState: .Normal)
    boton.translatesAutoresizingMaskIntoConstraints = false
    boton.addTarget(self, action: #selector(handleSend), forControlEvents: .TouchUpInside)
    return boton

}()

 // MARK: container

lazy var inputContainerView: UIView = {

    let containerView = UIView()
    containerView.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 50)
    containerView.backgroundColor = UIColor.whiteColor()

    containerView.addSubview(self.inputTextField)
    containerView.addSubview(self.sendButton)

   //I added some constrains to the textfield and the button

    return containerView

我也有这种方法:

override var inputAccessoryView: UIView? {
    get {
        return inputContainerView
    }
}

override func canBecomeFirstResponder() -> Bool {
    return true
}

那么,我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

将tableView的contentInset.bottom属性设置为容器视图的给定高度,然后:

tableView.layoutIfNeeded()
tableView.setContentOffset(CGPoint(x: 0, y: tableView.contentSize.height-tableView.frame.height+tableView.contentInset.bottom), animated: true)

...强迫它滚动到底部。