2017-03-18 9 views
0

私は間違いがあります:インタフェースビルダーからではなくコードからTextFieldを作成するのは間違っていますか?iOS - プログラムで作成されたTextFieldの場所

たとえば、私はCocoaPodsで撮影した 'AwsomeTextField'を使用しています。説明のページで

言う:

let field = AwsomeTextField(frame: CGRect(x: 60, y: 200, width: 320, height: 44)) 
    field.placeholder = "test" 
    view.addSubview(field) 

しかし、私はCGRect (x: 60, y: 200, width: 320, height: 44)で絶対位置を割り当てる場合、私はもちろん、iPadやiPhone IF上でアプリケーションを実行するならば、グラフィックスが凶悪になります。

インターフェイスビルダーのココアポッドのモジュールを使用して、正しい制約を追加することができます。また、コードによっても自動レイアウトで作業できますか?よくわかりません!

答えて

0

あなたがコードで作成したビューに制約を加えることを停止することは何もありません:

let field = AwsomeTextField(frame: .zero) // Create the view with a zero frame 
field.placeholder = "test" 
field.translatesAutoresizingMaskIntoConstraints = false // You should always do this to views you create in code that you want to apply layout constraints to 
view.addSubview(field) 
// No that you have added field as a subview, you can add constraints to it here. 

あなたがInterface Builderのを使用したい場合は、あなたのビューコントローラ上にピッカーからプレーンのUIViewをドラッグして、任意の制約を追加。次に、ビューのクラスをUIViewからAwesomeTextFieldに設定します。

+0

うん、私は理解して、あなたに感謝します。しかし、もし私がすべての単一の項目をプログラムするのではなく、インターフェースビルダーを使いたいのであれば? (常にポッドを使用しています) –

0

'AwsomeTextField'ポッドはUITextFieldの拡張です。

ドラッグインタフェースビルダでUITextFieldオブジェクト、アウトレットを作り、そのようAwesomeTextFieldするコンセントタイプを切り替える:

@IBOutlet weak var awesomeTextField: AwsomeTextField! 

もXcodeでアイデンティティインスペクタのカスタムクラスセクションにAwsomeTextFieldクラスが含まれています。

あなたがコードからそれをすべての時間を作成する必要はありません。この方法;]

関連する問題