2016-08-11 5 views
0

私は下の境界線をテキストフィールドに置くソリューションを実装していますが、私は以下の問題があります。私が大きなサイズ(iPad mini、iPad Pro)または風景(iPhone 6,6s)でアプリを起動した場合、テキストフィールドの下の行は正しく伸びていません。スウィフトiOS - TextFieldのボトムボーダーの初期の間違った幅

私は、テキストフィールドの拡張子を作成してもらう:

extension UITextField { 
/** 
Customize the UITextField for App 

- parameter isPasswordField: Boolean to check if this field is a password field 

- author: Simon Zwicker <[email protected]> 
*/ 
func customize(isPasswordField: Bool) { 
    let bottomLine = UIView() 
    bottomLine.frame = CGRect(x: 0.0, y: self.frame.size.height - 1, width: self.frame.size.width, height: 1.0) 
    bottomLine.backgroundColor = UIColor.grayColor() 
    self.addSubview(bottomLine) 

    self.tintColor = UIColor.grayColor() 

    if isPasswordField { 
     self.textColor = UIColor.blueColor() 
    } 
} 

私はviewWillLayoutSubviews()

にテキストフィールドにcustomize()関数を呼び出す私はどこかでミスをしましたか?私はデバイスを縦に置き、景観に戻った後に動作します。

テキストフィールドのサイズは初期値ですが、customize関数のself.frame.size.widthは小さすぎます。おそらく何が起こったのか知っていますか?

答えて

2

viewWillLayoutSubviewsを呼び出すと、テキストフィールドの最後に画面に表示された幅(または制約が適用されていない)が表示されないようです。

customizeを適切にスケーリングしてください。あなたがこの解決策に満足しているかどうかはわかりません。

+0

私はそれをuiViewの高さ1で、widthをstoryboardのtextfieldと同じにして解決しました。最も簡単な方法はほとんどが複合体ではありません;) –

+0

うれしいです。ポイントをありがとう。 :) – Armin

関連する問題