附加文本后的 UITextField 布局超级视图
Posted
技术标签:
【中文标题】附加文本后的 UITextField 布局超级视图【英文标题】:UITextField layout superview after appending text 【发布时间】:2016-08-16 08:35:16 【问题描述】:我有 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()
【问题讨论】:
为什么不给文本字段尽可能大的宽度?使用清晰的颜色背景,您看不到矩形块,而只看到文本。 因为我右边还有另一个文本字段,我不想浪费空间 【参考方案1】:试试:(宽度为sumTextField宽度NSLayoutConstraint)
func textDidChange()
let newSize = sumTextField.sizeThatFits(CGSizeMake(CGFloat.max, CGFloat.max))
width.constant = newSize.width
layoutIfNeeded()
【讨论】:
【参考方案2】:看到这个答案:textDidChange vs controlTextDidChange
简而言之,使用 controlTextDidChange: 代替。
【讨论】:
1.它是 ios,而不是 OS X 2。我的 textDidChange 函数被调用,我在其中放置了断点以上是关于附加文本后的 UITextField 布局超级视图的主要内容,如果未能解决你的问题,请参考以下文章
iOS - 以编程方式在具有自动布局的 UITextField 内定位 UIImageView