1

申し訳ありませんが、これがすでに議論されている場合、私は自分が何を求めているのかを見つけることができませんでした。

2つの配列を含む.plistファイルがあります。これらの配列は、テーブルビューでセクションを分割したい方法で正確に分割されています。

配列をテーブルビューに取り込むのに問題はありませんが、最初のセクションに1つの配列が必要で、2番目のセクションに2番目の配列が必要であることをアプリに伝える方法について頭を悩ませることはできません。

配列をテーブルに入れる現時点での私のコードは次のとおりです(そしてそれは正常に機能します):

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Create string with reference to the prototype cell created in storyboard
    static NSString *CellIdentifier = @"PlayerNameCell";

    //Create table view cell using the correct cell type
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier      forIndexPath:indexPath];

    //Create a dictionary containing the player names
    NSDictionary *players = (NSDictionary*) [[self Squad] objectAtIndex:[indexPath row]];

    //Set the cell text to the player name
    [[cell textLabel] setText:(NSString*)[players valueForKey:@"PlayerFullName"]];

    //Set the cell detail text to the squad number
    [[cell detailTextLabel] setText:(NSString*)[players valueForKey:@"PlayerSquadNumber"]];

    return cell;
}

しかし、今は別のテーブルビューがあり、それぞれが異なる配列から読み取る2つのセクションが必要になります。

どんな助けでも大歓迎です。

どうもありがとう

4

2 に答える 2

0

わかりました、トップ レベルに 2 つの配列があり、それらの配列のそれぞれに配列が含まれていますよね?

調整が必要な方法がいくつかあります。テーブル ビューのセクション数に対する最上位配列の数を返します。cellForRowAtIndexPath: で、正しいセクション/行の正しいオブジェクトを返します。何かのようなもの

[[sectionsArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row]

于 2012-12-07T12:55:08.343 に答える
0

次の手順を実行してください。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)aTableView
{
    return 2;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"PlayerNameCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    if( cell == nil ){
        UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }

    if( indexPath.section == 0 ){
        NSDictionary *players = (NSDictionary*) [self.array1 objectAtIndex:indexPath.row];
        cell.textLabel.text = (NSString*)[players valueForKey:@"PlayerFullName"];
        cell.detailTextLabel.text = (NSString*)[players valueForKey:@"PlayerSquadNumber"];
    } else {
        NSDictionary *players = (NSDictionary*) [self.array2 objectAtIndex:indexPath.row];
        cell.textLabel.text = (NSString*)[players valueForKey:@"PlayerFullName"];
        cell.detailTextLabel.text = (NSString*)[players valueForKey:@"PlayerSquadNumber"];
    }

    return cell;
}

セクションの数を 2 に設定します。セクションごとに [self.array2 objectAtIndex:indexPath.row] で異なる値を取得します。

plist を 2 つの配列に保存する方法はわかりませんが、サポートが必要な場合はお知らせください。

于 2012-12-07T13:10:43.907 に答える