クリックしてtableviewセルを展開します。 2つのセルが拡張可能であり、他のセルが拡張可能でないテーブルビューがあります。展開可能なセルをクリックすると、その下にセルが表示され、もう一度クリックすると非表示にする必要があります。これを定義するイメージがあります。UITableViewstylePlainのUITableViewセルを
どのように私はこの機能を実現することができ、上記のために案内してください。 ありがとうございます。
クリックしてtableviewセルを展開します。 2つのセルが拡張可能であり、他のセルが拡張可能でないテーブルビューがあります。展開可能なセルをクリックすると、その下にセルが表示され、もう一度クリックすると非表示にする必要があります。これを定義するイメージがあります。UITableViewstylePlainのUITableViewセルを
どのように私はこの機能を実現することができ、上記のために案内してください。 ありがとうございます。
Hereは、ここでそのためのコードスニップだ拡張のUITableView
との完全なチュートリアルです。絵の下に示すように
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([self tableView:tableView canCollapseSection:indexPath.section])
{
if (!indexPath.row)
{
// only first row toggles exapand/collapse
[tableView deselectRowAtIndexPath:indexPath animated:YES];
NSInteger section = indexPath.section;
BOOL currentlyExpanded = [expandedSections containsIndex:section];
NSInteger rows;
NSMutableArray *tmpArray = [NSMutableArray array];
if (currentlyExpanded)
{
rows = [self tableView:tableView numberOfRowsInSection:section];
[expandedSections removeIndex:section];
}
else
{
[expandedSections addIndex:section];
rows = [self tableView:tableView numberOfRowsInSection:section];
}
for (int i=1; i<rows; i++)
{
NSIndexPath *tmpIndexPath = [NSIndexPath indexPathForRow:i
inSection:section];
[tmpArray addObject:tmpIndexPath];
}
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if (currentlyExpanded)
{
[tableView deleteRowsAtIndexPaths:tmpArray
withRowAnimation:UITableViewRowAnimationTop];
cell.accessoryView = [DTCustomColoredAccessory accessoryWithColor:[UIColor grayColor] type:DTCustomColoredAccessoryTypeDown];
}
else
{
[tableView insertRowsAtIndexPaths:tmpArray
withRowAnimation:UITableViewRowAnimationTop];
cell.accessoryView = [DTCustomColoredAccessory accessoryWithColor:[UIColor grayColor] type:DTCustomColoredAccessoryTypeUp];
}
}
}
}
は
これはグループテーブルです、私はプレーンテーブルのみを求めています。 –
@iPhoneあなたは[this](http://www.roostersoftstudios.com/2011/04/14/iphone-uitableview-with-animated-expanding-cells/)のプレーンテーブルについてチェックしました – swiftBoy
私はそのようなサンプルを見たことがありますポスティングの質問では、これはセクションを展開します。プレーンではただ1つのセクションのみが展開する必要があります。 –
私はあなたが望むものはすでにAppleによって与えられていると思います。 Appleによってテーブルビューのアニメーションとジェスチャーのタイトルで提供されたSample Codeをご覧ください。
これは、デリゲートによって可能であるを管理する方法を理解するのに役立ち
- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath {
//write code here
}
この目的のためにこのメソッドを使用したことがありますか? –
さて、私が考えていることで、タイトル、イベント、オーバーヘッドと友達は、タイトルの背景についてUIImageView
、UILabel
、およびUIButton
のための拡大を持つカスタムUIView
だろう。だから基本的に
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
あなたが持っているタイトルの戻り数があります。
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
返されるタイトルはそれぞれUIView
です。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
そのタイトル内の行の数を持つ。 このために配列を維持する必要があるかもしれません。上のユーザタップが膨張するとき、最初に、それは、すべてのセクションのための0(ゼロ)であるべきで、それは行の数に対して増加されるべき細胞項目
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
の高さを有する
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
*セルの高さはです。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
あなたは拡張のためのすべての行を設定するためのいくつかの良いロジックが必要な場合があります
あなたがsender.tagを使用して拡張するためにどのセクションを識別することができますあなたの拡張ボタンのアクションのようなもの、
- (void) expandSection:(UIButton *)sender;
タグを正しく追加することを忘れないでください。現在のセクションを保存するためにが.h
ファイルに必要な場合があり、- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
データソースメソッドで使用できます。
JKExpandTableViewはexpandable table viewを実装MITライセンスのiOSライブラリです。付属のサンプルプロジェクトもチェックアウトしてください。
受け入れ答えは本当ですが、リンクが古くなっています。あなたは、余分なものをしなければならない仕事にその例を取得するには:ここから
ダウンロードExpandableTableCellsプロジェクト:
https://github.com/cocoanetics/Examples
はこちらからDTCustomColoredAccessory.hとの.mファイルをダウンロードします。 https://github.com/Cocoanetics/DTFoundation/tree/develop/Core/Source/iOS
をDTCustomColoredAccessoryを入れてExpandableTableCellsプロジェクトのファイル。
ここでは、実際の例があります。ゼロからの書き込みを試みるのではなく、そこから編集して移動する方が簡単です。
私は 'Download ExpandableTableCells project'をダウンロードしてダウンロードDTCustomColoredAccessory.hと.mファイルを追加しました。しかし、エラーが表示されます。「エラー:リンカーコマンドが終了コード1で失敗しました(呼び出しを見るために-vを使用します)」と助けてください。 –
あなたはエラーの詳細を投稿できますか? – Esqarrouth
問題を解決しましたか? – Bhavin
いいえ、まだ.... –
あなたは私の答えをチェックしましたか? – Bhavin