【发布时间】:2015-09-06 01:01:34
【问题描述】:
我正在尝试设置一个简单的 UITableViewCell,其中左侧有一个提示,然后旁边有一个文本字段,它占据了单元格的其余宽度;但是,在以下约束条件下,无论我将 UITextField 的宽度设置为多少,该字段的宽度都只能容纳 1 个字符。注意:UITextField 出现在正确的位置(它直接在提示的右侧),它真的很小。
cell.contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[prompt]-[uitextfield]", options: NSLayoutFormatOptions.AlignAllCenterY, metrics: nil, views: views))
cell.contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-[promt]-|", options: nil, metrics: nil, views: views))
cell.contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-[uitextfield]-|", options: nil, metrics: nil, views: views))
一个有效的解决方案是将 uitextfield 的宽度设置为一个高得离谱的数字:
cell.contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[prompt]-[uitextfield(1000)]", options: NSLayoutFormatOptions.AlignAllCenterY, metrics: nil, views: views))
但是我不能使用这个解决方案,因为有时 UITextField 是 UISegmentedControl(或其他控件),我不想将这些控件展开。
即使我明确地将 frame.size.width 设置为较大的值,为什么 UITextField 会强制其宽度非常小?
【问题讨论】:
标签: ios swift uitableview autolayout uitextfield