テーブルビューでは、今週予定されている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. anglejsで配列が空の場合にメッセージを表示
- 2. knockout js 'with binding、配列が空の場合は非表示
- 3. テーブルビューには、私の追加の配列を示す、彼らが空でない場合でも、
- 4. PHP配列が他の場合
- 5. 表示欄が空白の場合
- 6. コンテンツフィールドが空の場合表示なし
- 7. ユーザーが表示する前にテーブルビューに配列を表示
- 8. テストバイト配列は、C#で空の場合
- 9. Python - 配列が他の配列の範囲にある場合
- 10. NG-場合は、チェックは、配列が空の場合
- 11. NSMutableArrayをテーブルビュー
- 12. PHP場合、$ VARの他に[「テーブル」] [「テーブル」]は空白表示することがnullの場合
- 13. AngularJS - フィルタでng-repeatが空の場合divを表示
- 14. WooCommerceでカートが空の場合にエラーメッセージを表示しない
- 15. リピータ:データソースが空の場合でもフッターを表示
- 16. ngmodelが== ""(空)の場合のコンテンツの表示方法、ngmodelが!= ""の場合、他のコンテンツを表示する必要があります
- 17. postgres配列オーバーラップ演算子(&&)空の配列の場合
- 18. 他の場合のタブの表示と非表示
- 19. PHP配列のキーがNULLの場合、配列が空に見えます
- 20. 配列要素のSubstrが空でない場合
- 21. 列が空の場合にgridviewのボタンを表示する方法
- 22. その行の配列が空の場合、個々の行を非表示にする
- 23. テーブルビューのplistからデータの配列を表示する
- 24. データテーブルの行が空の場合にボタンを表示
- 25. フィールドが空白の場合のみSQLサーバーレポートビルダーを表示
- 26. セルの内容が空の場合、テーブルにメッセージを表示
- 27. drupal 7 field.tplこのフィールドが空の場合これを表示
- 28. 他の列が空白の場合、列を太字にします。
- 29. JavaScriptが空の場合、配列をスキップする方法
- 30. 空の配列を渡す場合、array_merge_recursiveが機能しない
魅力的な作品です。ありがとう! – user1048042