我想設置一個簡單的UITableViewCell,其中有一個提示在左邊,然後在它旁邊的文本字段,它佔據了其餘的細胞的寬度;但是,有了以下限制,無論我將UITextField的寬度設置爲何,該字段的寬度僅適用於1個字符。注意:UITextField出現在正確的位置(它直接在提示的右邊),它只是非常小。已工作自動佈局:空UITextField只有足夠的1個字符
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我不能然而使用這種溶液(或其他控制),我不想將這些控件拉伸出來。
爲什麼UITextField強制其寬度非常小,即使我明確地將frame.size.width設置爲大一些?
根據你的回答,我找到了一個解決方案:1)我把uitextfield的擁抱優先級改成小於250(所有內容擁抱優先級爲250:contentView,uitextfield&prompt)2)改變,uitextfield仍然只有1個字符寬(注意:我沒有在我的問題中提到這一點,但uitextfield出現在提示旁邊的正確位置,它非常小)。是什麼讓uitextfield擴展到了將它釘在它的超級視圖的右側:「H:| - [text] - [control] - |」 – JoeyBartez
太棒了!很高興你自己得到了答案。 :) 隊友的歡呼聲! –