0

上位5つのスコア(レベル1とレベル2)を、それらを分割する線で画面に垂直に表示したいスコア画面があります。スコアは、降順でソートされた2つのNSArrayオブジェクトから取得されます。私は複数の列を表示するためにUITableView/UITableViewCellを研究してきましたが、探しているもののコーディングが増えているようです。仕事をする他の代替iOSコントロールはありますか?

何か案は?

これはそれがどのように見えるかです

レベル1レベル2
====== ======

34 46
32 33
24 28
20 21
16 18

4

3 に答える 3

2

2つのオプションがあります。

ここで行う最も洗練された解決策は(気が進まないにもかかわらず)、列の値ごとにUITableViewCell2つのsを持つテーブルセルの独自の実装をサブクラス化して提供することです。そうすれば、セルの中央に垂直線を引くことができます。 UILabel(すべてのセルが表示されると、テーブルビューの中央に線が表示されます)。

UILabelもう1つのオプションは、テーブルビューセルに追加を追加し、セルの右側に配置されるよう-tableView:cellForRowAtIndexPath:に設定することです。frame

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

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

    self.textLabel.text = [firstArray objectAtIndex:indexPath.row];       

    UILabel *secondColumnLabel = [[UILabel alloc] initWithFrame:CGRectMake(<customize your values here>];
    secondColumnLabel.backgroundColor = [UIColor clearColor];
    // any other customization goes here
    secondColumnLabel.text = [secondArray objectAtIndex:indexPath.row];
    [cell addSubview:secondColumnLabel];
}
于 2013-01-14T23:53:24.020 に答える
2

他の解決策があるかもしれませんが、私は個人的にサブクラス化の道を歩みUITableViewCellました。これは私のアプリでどのように見えるかのスクリーンショットです:

複数行のUITableViewCellのスクリーンショット

このためのコードは、私のアプリのGitHubリポジトリから自由に入手してください。TableViewGridCellこれは、(パスの下にある)という名前のクラスsrc/uiです。このクラスには、ヘッダーファイルに記載されているいくつかの制限があります。スクリーンショットでは、わずかなグリッチがあり、1つのセルの線が1ピクセルずれていることもわかります。これはまだ修正が必要です...

于 2013-01-15T00:08:15.840 に答える
0

2つのUITableViewを作成して並べて配置し、viewcontrllerで両方を個別に処理できます。または、必要に応じて、フォーマットされたhtmlを簡単に作成し、Webビューに表示することもできます。

于 2013-01-14T23:48:49.210 に答える