2017-07-08 11 views
0

私はSwiftを初めて使いました。ユーザーがUIViewに新しいtextFieldを追加する方法を理解できません。Swiftのユーザーによる新しいUITextFieldの追加

たとえば、プラス記号のユーザータップと3つの新しいtextFieldが直前のものの直後に表示されます。また、ユーザーは、新しいテキストフィールドの近くに表示される別のボタンでワンクリックで削除することができます(私が見つけた唯一の類似システムは、標準の連絡先アプリケーションで表示され、新しい電話番号、住所、日付などを追加できます)。

"+"記号の中に、これらのtextFieldsと制約をプログラムで追加する必要がありますが、それでもやり方は分かりません。 提案がありますか?

+0

あなたは 'UIStackView'を使って制約を加えるという苦労を省くことができます。次に、新しいテキストフィールドを追加します。 私はこのことをどうやって行うのか分かりませんが、私は見ています。これは楽しいと思う。 – Marmelador

+0

https://stackoverflow.com/questions/1196436/uitextfield-in-uitableviewcell-adding-new-cells –

答えて

0

この機能を実現するには、UIStackViewまたはUITableViewを使用できます。

UITextFieldを作成するには、次のスニペットを使用します。

、UITextFieldの追加TextFieldを作成し、 func insertArrangedSubview(_ view: UIView, at stackIndex: Int)方法を使用して、それを追加するにはStackView、

  1. を使用して
    let tf = UITextField() 
    tf.borderStyle = .roundedRect 
    tf.setContentHuggingPriority(UILayoutPriority(integerLiteral: 750), for: .horizontal) 
    tf.setContentHuggingPriority(UILayoutPriority(integerLiteral: 750), for: .vertical) 
    

    。詳細はhereを参照してください。

  2. すべてのUITextFieldを削除するには、func removeArrangedSubview(_ view: UIView)メソッドを使用します。ここでは、削除するビューを指定する必要があります。すべてのサブビューの配列を取得するには、UIStackViewのarrangedSubviewsプロパティを使用します。より詳しい情報は、あなたがUITableViewCellのがそれでのUITextFieldを有するように構成する必要がありますのUITableView、

    を使用してhere

を見つけることができます。セルを取得したら、すべてのUITextFieldのカウントを保持する変数を保持します。ユーザータッププラスボタンを押すたびに、func insertRows(at indexPaths: [IndexPath], with animation: UITableViewRowAnimation)を使用してTextFieldを追加します。 あなたの人数を増やすことを忘れないでください。。詳細はhereを参照してください。カウント変数を大きくしてテーブルをリロードすることもできます。

すべてを削除するには、func deleteRows(at indexPaths: [IndexPath], with animation: UITableViewRowAnimation)を使用するか、単にカウント変数をゼロに設定してfunc reloadData()を使用します。詳細はherehere

関連する問題