1

私は現在、Android アプリの iOS バージョンを開発しています。ある画面には一連の行があり、クリックすると展開されて情報が提供されます。

クリック前:

ここに画像の説明を入力


クリック後:

ここに画像の説明を入力

iOS でこの動作を再現するにはどうすればよいですか? テーブル ビューを使用する必要があるのか​​、それとも一般的な UIView を構築するだけなのかわかりません。自動レイアウトを使用しています。

4

3 に答える 3

1

特定の NSIndexPath で UITableVIewCell をリロードし、セルの新しい高さを計算できます。

小切手:

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

からとUITableView_

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

からUITableViewDelegate

于 2012-10-09T19:23:50.473 に答える
0

の各グループのヘッダー ビューをカスタマイズするだけUITableViewです。メソッドを使用viewforheaderinsectionしてそれを行い、たとえば UIButton を返します。そして、そのボタンをタップするとUITableViewCells、この選択したグループに挿入する必要があります。私は現在Windowsを使用しているため、コードを提供することはできませんが、実行するのは非常に簡単です.

UPD: Apple によるこのサンプル コードを見てください: http://developer.apple.com/library/ios/#samplecode/TableViewUpdates/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010139

于 2012-10-09T19:24:52.083 に答える
0

テーブル セルを展開するためのタッチ イベントを受け取ったら、テーブル コントローラーで次の呼び出しを使用します。

[self.tableView beginUpdates];
[self.tableView endUpdates];

アニメーション ブロックは空ですが、beginUpdates と endUpdates を呼び出すと、テーブル ビューでセル レイアウトが更新され、変更がアニメーション化されます。これにより、テーブル ビュー デリゲートが再クエリされるため、UITableViewDelegate に次のメソッドを必ず実装してください (通常、これを UITableViewController に設定します)。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

タッチ イベントを受け取った後、このメソッドが適切な展開されたセル サイズを返すことを確認します。結果は、滑らかなセル拡張アニメーションになります:)

于 2012-10-18T20:09:41.617 に答える