今天一樣講畫面佈局的部分,開發時常常會使用到讓使用者填入資料的textfield,但常常為了版面整潔,標體後不太會放太多提示語,有時候會選擇在佔位符的地方添加提示,但若是字數太多超出顯示範圍時該怎麼辦呢?
因為不可能就讓他超過,所以在最小幅度的改動中,希望他可以在原有的輸入框中換行顯示,以達到我希望它顯示完整文字的目的,但思考了一下,所有元件中我對於UILabel的使用最熟悉,有可以讓字的大小自適應元件寬度的adjustsFontSizeToFitWidth屬性,也有可以因元件寬度自動換行的numberOfLines屬性,使用adjustsFontSizeToFitWidth屬性解決了話,可能會發生字變得太小的情況,使用numberOfLines屬性解決了話,只要字數不是長篇大論,應該還是可行的~
但問題是textfield能否使用的了UILabel的屬性呢?答案是肯定的!
就是將UITextField的subview轉成UILabel就可以使用UILabel的屬性,
這樣就可以解決佔位符字數太多超過顯示範圍的問題,這解法感覺很多地方可以通用,先學起來XD
for subview in testTextField.subviews {
if let testTextFieldLabel = subview as? UILabel {
testTextFieldLabel.numberOfLines = 0
}
}