0

iOS (iPhone) には、複数のコンポーネントがあり、一種のスタック方法 (1 つが次の上にある) で編成されたビューがあります。これらはユーザー アカウントのプロパティで、一部は空白になっている可能性があります。

したがって、私のビューには次のようなコンポーネント レイアウトがあります。

UITextField1 (名前)

UITextField2 (場所)

UITextField3 (年齢)

UITextView1 (バイオ)

UITableView (ユーザー エントリ)。

一部のフィールドは空白である可能性があります。空白のフィールドに空白を入れる代わりに、次のフィールドを上に移動したいと思います。

これは、flowlayout に関するこの質問のようなものです: What is the best/iest way to create 'flow layout' type layout in iOS .

これに対処する方法は2つしかありません。

  1. すべての UIView をトラバースし、どれが空白かを判断して次の上部に移動する関数を作成します。
  2. UITableView を作成し、コンテンツが空のセルに異なるセルの高さを使用します。

コンポーネントがあれば理想的ですが、見つかりません (基本的に、ある種のスタック/フロー レイアウト)。

とにかく、上記のオプション #1 を実装すると思いますが、これを達成するための「標準的な」方法があるかどうかはわかりません (正直なところ、この機能を探すための適切な用語さえ知りません)。 .

ありがとう。

4

1 に答える 1

1

あなたが提案する方法ではなく、UITableViewを使用して、2番目の選択肢の方向にもっと傾くでしょう。

これは、UITableView を使用した私のアプローチです。

  1. コンポーネントごとに UITableViewCell (またはカスタム セル) を作成し、それぞれにタグ値を割り当てます。これらは後で使用します。これは、viewDidLoad で行うことができます。

  2. numberOfRowsInSection にコードを追加して、どのフィールドにデータ値が存在するかを確認します。データ値を持つフィールド数の合計数を返します

  3. cellForRowAtIndexPath で、そのフィールドのデータが存在するかどうかを確認します。存在する場合は、手順 1 で作成されたセルが既に作成されているかどうかを確認します (存在しない場合は作成します)。そうでない場合は、何らかのカウンターをインクリメントしてタグ値を増やします。値を持つ次のフィールドを見つけます。見つかったら、その「タグ/インデックス」番号を使用して、適切なセルを「返します」。

最後に、データを含むフィールドのみを表示する UITableView があります。

于 2012-08-11T15:25:21.907 に答える