我正在搜索如何将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
}
那么,我该怎么做呢?
答案 0 :(得分:0)
将tableView的contentInset.bottom
属性设置为容器视图的给定高度,然后:
tableView.layoutIfNeeded()
tableView.setContentOffset(CGPoint(x: 0, y: tableView.contentSize.height-tableView.frame.height+tableView.contentInset.bottom), animated: true)
...强迫它滚动到底部。