當我的UITextField成爲第一個響應者時(編輯時)文本向下移動很少,字符之間的間距略微增加。在第一響應者辭職後(鍵盤消失),角色回到原來的位置。起初我認爲這是一個字體問題,因爲我使用的是自定義字體,但是當我使用系統字體或其他自定義字體時會發生同樣的情況。UITextfield文本正在編輯
請檢查下面的圖像。第一個是鍵盤向下,第二個是鍵盤向上。可能很難看到,因爲方差很小,但鍵盤向上狀態顯示人物向下移動並略微分開。
當我的UITextField成爲第一個響應者時(編輯時)文本向下移動很少,字符之間的間距略微增加。在第一響應者辭職後(鍵盤消失),角色回到原來的位置。起初我認爲這是一個字體問題,因爲我使用的是自定義字體,但是當我使用系統字體或其他自定義字體時會發生同樣的情況。UITextfield文本正在編輯
請檢查下面的圖像。第一個是鍵盤向下,第二個是鍵盤向上。可能很難看到,因爲方差很小,但鍵盤向上狀態顯示人物向下移動並略微分開。
你可能已經調整了您的UITextField稍微偏小高度方向。嘗試手動調整它的大小,以便它是一個像素或兩個更高。或者在XIB編輯器中選擇它並使用「編輯器」菜單中的「尺寸以適合內容」。這應該將文本字段設置爲合適的大小,以避免文本移位。
我嘗試調整UITextField和「大小以適應內容」,沒有運氣。 –
選擇「調整到適合」屬性設置UITextField中的屬性adjustsFontSizeToWidth。
具有此特性(UITextField Apple Documentation):
通常情況下,文本字段的內容繪製您在字體屬性來指定字體。但是,如果此屬性設置爲YES,則 和文本屬性中的內容超過文本字段的邊界 矩形,接收器將開始減小字體大小,直到字符串 適合或達到最小字體大小。文字沿着 基線縮小。
此屬性的默認值爲NO。如果將其更改爲YES,則還應該通過修改 minimumFontSize屬性來設置適當的最小字體大小。
我會嘗試先取消選中此項並查看是否會阻止它,然後按照文檔建議並設置minimumFontSize屬性,否則可能會導致問題。
此問題可能是藍色「正在編輯」光標出現的結果。文本的底線(reference)是文本的底部。您的文本通過向下按壓「沿着基線」收縮,這會更強烈地影響它的最小字體大小/ adjustsFontSizeToWidth問題。
謝謝你的迴應。將adjustsFontSizeToWidth屬性設置爲NO(取消選中)或修改最小字體大小可解決問題。 –
設置minimumfontsize時,是否使其與您的字體大小相同? – AdamG
我只是試過,無濟於事。我發現這篇文章有助於水平定位,但文本間距仍然會發生變化。 http://stackoverflow.com/questions/6351340/using-a-custom-font-in-a-uitextfield-causes-it-to-shift-slightly-when-accessed –
您應該設置Text屬性之前的Font屬性。
這對問題沒有任何影響。 –
如果你用力做的UITextField第一個響應,這樣做在viewDidAppear:不是viewDidLoad中......這解決了我的問題......
這確實是固定它,應該標記爲答案。 –
在XIB,設置文本框的的borderStyle比TextBorderStyleNone任何價值。並且在代碼中,將textfield的borderStyle顯式設置爲TextBorderStyleNone。
我不知道爲什麼,但它似乎是初始化程序錯誤。它在其他代碼中工作正常,它不會通過xib插座初始化UITextField。
在xib中將textfield的borderStyle設置爲TextBorderStyleNone時,即使在代碼中將BorderStyle設置爲TextBorderStyleNone,問題依然存在。它可能跟着一些'layoutIfNeeded'的東西,這是由價值變化引發的。
檢查OFF我的故事板中textField的「Clip to Bounds」工作正常。
這對我有幫助。正如上面對OT的評論所指出的那樣,我注意到這是在iOS 10.0(但不是9.3.x)使用不可見邊框樣式時發生的。默認邊框樣式沒有問題。 – Jonny
設置Min Font Size
屬性等於字體大小Interface Builder
工作對我來說
你能告訴更多的代碼?它設置了哪些屬性?它如何添加到視圖? – AdamG
我通過一個nib文件將它添加到視圖中,並且我沒有以編程方式執行任何操作。我有一個自定義字體,中心對齊,沒有邊框,沒有清晰的按鈕,調整到適合和其他一切只是默認設置。 –
您是否找到解決方案? – AdamG