テーブルビューでは、今週予定されているNSMutableArrayからローカルサッカーの試合を表示しています。一致するものがない場合は、「今週は一致しません」というようなセルを表示します。私は一致のNSMutableArrayが空であれば別の配列、またはおそらく辞書を呼び出さなければならないと思いますが、この時点ではどこから開始するのか分かりません。どのようにこれを達成するための任意の考えですか?Howto?テーブルビューで、NSMutableArrayが空の場合、他の配列を表示
答えて
まず、一致するものがあるかどうかをテストします。存在する場合は、tableViewに一致と同数の行があることを伝えます。存在しない場合は、1行を戻します。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [matches count] ? [matches count] : 1;
}
マッチがあるかどうかを確認、あなたのセルを作成する場合がある場合はその後、、存在しない場合は、「いいえマッチ」を示さない、適切なものを示しています。あなたのテーブルのtableView:numberOfRowsInSection:
デリゲートメソッドで
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// boiler plate cellForRowAtIndexPath stuff here...
NSUInteger row = [indexPath row];
cell.textLabel.text = [matches count] ? [matches objectAtIndex:row] : @"No Matches";
return cell;
}
、あなたはどんな一致があるかどうかを知る必要があります。そうでない場合は、1を返します。これにより、テーブルの行が1つになります。
一致がない場合はその後、あなたのtableView:cellForRowAtIndexPath:
デリゲートメソッドでは、テキスト「いいえマッチ」でセルを返し、そうでない場合、あなたは試合に応じてセルを返す:
- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section {
BOOL hasMatches = [myMatchesArray count] > 0;
return hasMatches ? [myMatchesArray count] : 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
BOOL hasMatches = [myMatchesArray count] > 0;
UITableViewCell *cell = .....
if (hasMatches) {
MyMatchObject *match = (MyMatchObject *)[myMatchesArray objectAtIndex:indexPath.row];
[cell.textLabel setText:match.matchText];
}else{
[cell.textLabel setText:@"No Matches"];
}
return cell;
}
返事をありがとう。アレックスのコードがいくぶん短くなったので、私はそれを実装しました。それでも、ありがとう! – user1048042
の両方あなたがテーブルで何をするかによって、後でいくつかの問題が発生するかもしれません。たとえば、テーブルの最初の行を挿入または削除した場合(つまり、最初の一致を追加した場合や最後の一致を削除した場合)セクション内の行数は変更されていませんが、行が追加または削除されているため、例外が発生します。
特別な行の削除などを防止する必要がある場合もあります。それはすべて少し乱雑になることができます。
これが問題の場合、ヘッダーまたはフッタービューに「一致しません」というメッセージが表示され、適切に表示されるように切り替える方がよい場合があります。
あなたに投票してください。私は同じ理由で同様のソリューションを使用しています。 UILabelがテーブルの上をホバリングしていて、私はその 'hidden'プロパティを設定しました。 – Sulthan
- 1. knockout js 'with binding、配列が空の場合は非表示
- 2. NG-場合は、チェックは、配列が空の場合
- 3. postgres配列オーバーラップ演算子(&&)空の配列の場合
- 4. PHP配列のキーがNULLの場合、配列が空に見えます
- 5. リピータ:データソースが空の場合でもフッターを表示
- 6. ngmodelが== ""(空)の場合のコンテンツの表示方法、ngmodelが!= ""の場合、他のコンテンツを表示する必要があります
- 7. NSMutableArrayをテーブルビュー
- 8. drupal 7 field.tplこのフィールドが空の場合これを表示
- 9. 変数が空の場合に文字列を表示しない
- 10. テーブルビューで配列値を表示する方法
- 11. コンテンツが空の場合divを非表示にする
- 12. JQuery:hrefが空の場合にアンカーを非表示にする
- 13. 配列がある場合は配列
- 14. 配列が空のときにdivを表示しない
- 15. 右のセルが空の場合は表の行を非表示にします
- 16. mvcで配列の配列を表示
- 17. 配列がある場合
- 18. JasperReports:表示されている場合は列またはフィールドを表示します。その他の場合は表示されません。
- 19. NSMutableArrayの配列へのアクセス
- 20. 配列が含まれている場合の角の表現
- 21. 空の列を非表示
- 22. 配列のループの場合
- 23. テーブルビューが空です
- 24. タブバーの非表示には空白が表示されます(フレームがフルスクリーンの場合でも)
- 25. 兄弟の1つが空の場合に要素を非表示にする
- 26. 代替テキストが空白の場合、スライドショーのキャプションを表示しない
- 27. オブジェクトが空の場合のビュー内の要素の条件付き表示
- 28. すべての行が空である場合、列を非表示にします。
- 29. データベースに--None--プルダウンメニューが表示されている場合、他のショーデータが入力されている場合
- 30. ソート順が空の場合、商品が表示されません。
魅力的な作品です。ありがとう! – user1048042