5

UICollectionView を使用して、各行に 1 つのオブジェクトのプロパティが表示されるスプレッドシートのようなレイアウトを作成するにはどうすればよいですか。

例:

Customer Id   First Name   Last Name   Social  Address  Phone 

UITableView を使用して思いついたのは次のとおりです。

funds = [[NSMutableArray alloc] init];
    columnNames = [NSArray arrayWithObjects:@"fundNumber",@"fundName",@"unitPrice",@"fundBalance",@"percentageOfAccountValue",@"futureContributionAllocation", nil];

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"FundCell"];

    Fund *fund = [funds objectAtIndex:[indexPath row]];

    for(NSString *columnName in columnNames)
    {
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(x, 0, 100, 44)];

        label.backgroundColor = [UIColor clearColor];

        label.text = [fund valueForKey:columnName];

        x += label.bounds.size.width;

        [cell addSubview:label];

    }

    x = 0;

    return cell;
}

出力は次のとおりです。

ここに画像の説明を入力

4

2 に答える 2

2

UICollectionViewControllerを使用してレイアウトをカスタマイズできUICollectionViewFlowLayoutます。実行したいことの背後にある考え方は次のとおりです。各列をセクションにすることができ、各タイトルが各セクションのヘッダーになります。

例: – numberOfSectionsInCollectionView:= 6(顧客ID、名、姓、社交、住所、電話) – collectionView:numberOfItemsInSection:=行数

于 2013-02-13T19:38:58.917 に答える
2

標準的なフロー レイアウトを適用できるかどうかはわかりませんが、独自のUICollectionViewLayoutクラスを作成する必要があるかもしれませんが、これはかなり簡単です。

テーブル ビューと同様に、コレクション ビューにはセクションとアイテムを含めることができます。スプレッドシートの各行をセクションにすることができ、個々の要素 (姓、社会、住所など) をアイテムにすることができます。

真のスプレッドシートのような機能 (つまり、水平方向垂直方向の両方にスクロールできる) が必要な場合は、独自のレイアウト クラスを作成する必要があります。それ以外の場合は、既存のフロー レイアウトを適応させることができるかもしれませんが、スクロールする必要がない場合は、基本的に、代わりにテーブル ビューを使用して目的を達成できます。

于 2013-02-13T19:34:09.383 に答える