我有UITableView,每行水平放置2个UITextField元素。
我希望UITextField在我附加文本时自动放大,但布局只在我结束编辑文本时才会发生。
我尝试将此代码添加到UITableViewCell但它不起作用
override func awakeFromNib() {
super.awakeFromNib()
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(BillPositionCell.textDidChange), name: UITextFieldTextDidChangeNotification, object: self.sumTextField)
}
func textDidChange() {
self.sumTextField.setNeedsLayout()
self.sumTextField.layoutIfNeeded()
self.contentView.setNeedsLayout()
self.contentView.layoutIfNeeded()
}
答案 0 :(得分:0)
尝试:(宽度为sumTextField width NSLayoutConstraint)
func textDidChange() {
let newSize = sumTextField.sizeThatFits(CGSizeMake(CGFloat.max, CGFloat.max))
width.constant = newSize.width
layoutIfNeeded()
}
答案 1 :(得分:-1)
请参阅此答案:textDidChange vs controlTextDidChange
简而言之,请使用controlTextDidChange:而不是。