私は現在、Android アプリの iOS バージョンを開発しています。ある画面には一連の行があり、クリックすると展開されて情報が提供されます。
クリック前:
クリック後:
iOS でこの動作を再現するにはどうすればよいですか? テーブル ビューを使用する必要があるのか、それとも一般的な UIView を構築するだけなのかわかりません。自動レイアウトを使用しています。
私は現在、Android アプリの iOS バージョンを開発しています。ある画面には一連の行があり、クリックすると展開されて情報が提供されます。
クリック前:
クリック後:
iOS でこの動作を再現するにはどうすればよいですか? テーブル ビューを使用する必要があるのか、それとも一般的な UIView を構築するだけなのかわかりません。自動レイアウトを使用しています。
特定の NSIndexPath で UITableVIewCell をリロードし、セルの新しい高さを計算できます。
小切手:
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
からとUITableView
_
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
からUITableViewDelegate
。
の各グループのヘッダー ビューをカスタマイズするだけUITableView
です。メソッドを使用viewforheaderinsection
してそれを行い、たとえば UIButton を返します。そして、そのボタンをタップするとUITableViewCells
、この選択したグループに挿入する必要があります。私は現在Windowsを使用しているため、コードを提供することはできませんが、実行するのは非常に簡単です.
UPD: Apple によるこのサンプル コードを見てください: http://developer.apple.com/library/ios/#samplecode/TableViewUpdates/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010139
テーブル セルを展開するためのタッチ イベントを受け取ったら、テーブル コントローラーで次の呼び出しを使用します。
[self.tableView beginUpdates];
[self.tableView endUpdates];
アニメーション ブロックは空ですが、beginUpdates と endUpdates を呼び出すと、テーブル ビューでセル レイアウトが更新され、変更がアニメーション化されます。これにより、テーブル ビュー デリゲートが再クエリされるため、UITableViewDelegate に次のメソッドを必ず実装してください (通常、これを UITableViewController に設定します)。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
タッチ イベントを受け取った後、このメソッドが適切な展開されたセル サイズを返すことを確認します。結果は、滑らかなセル拡張アニメーションになります:)