附加文本后的UITextField布局superview

时间:2016-08-16 08:35:16

标签: ios swift uitableview uitextfield

我有UITableView,每行水平放置2个UITextField元素。 enter image description here

我希望UITextField在我附加文本时自动放大,但布局只在我结束编辑文本时才会发生。

enter image description here enter image description here

我尝试将此代码添加到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()
}

2 个答案:

答案 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:而不是。