2016-11-09 75 views
0

我們的UITextField實例正在使用「默認」設置。它們根據用戶輸入自動擴展。我們希望將它們設置爲更大的初始寬度,以便它們不必增加寬度。在維持「適應性」佈局的同時,做到這一點的正確方法是什麼?或者這與iOS最佳實踐恰恰相反,我們應該保持原樣?iOS:正確設置或增加文本字段寬度的方法

+0

默認文本框添加約束具有動態的寬度和可設置的自適應與分鏡,有什麼實際問題? – Tj3n

+0

用戶在這些文本字段中輸入的標準文本比初始文本字段大小大約大25%。所以我想增加初始寬度,用戶不必看到文本字段擴大的效果。 –

+0

你是指身高?寬度可以設置爲任何值initialy isnt它 – Tj3n

回答

0

要確定一個視圖的大小自動版式採用兩種方法:對限制和intrisicContentSize

- (CGSize)intrisicContentSize //with 
- (UILayoutPriority)contentCompressionResistancePriorityForAxis:(UILayoutConstraintAxis)axis; 
- (UILayoutPriority)contentHuggingPriorityForAxis:(UILayoutConstraintAxis)axis; 

and 

width and height constrtaints (size constraints) 
//also the autolayot can use inner constraints, but here it is not important 

如果你有大小constraintsintrisic content size有不同的價值觀,你喊設置優先級。

對於您的情況,您可以爲橫軸設置contentHuggingPriorityForAxis設置low priority。寬度約束設置爲middle priority。水平軸爲contentCompressionResistancePriorityForAxis設置Hight priority。 之後,如果文本小於寬度約束,則textField的寬度約束的寬度與常量寬度相同。然後文本將有更多的寬度,然後約束,textField將生長出寬度約束。 此外,我建議你與最大寬度「< =」關係,required priority