0

タイトルが示すように、セル (tableView) に 3 つのラベルを付けたいと考えています。以下のコードに見られるように、私は現在、name、textLabel、book、detailTextLabel の 2 つのラベルしか持っていません。しかし、チャプターをラベル (tableView セル内の自分の行) としても使用したい場合はどうすればよいでしょうか? これを実装する最良の方法は何ですか?

出力は tableView で次のようになります。

名前

/よろしくお願いします!

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

if (cell == nil)
{
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
Bookmark *item = [self.items objectAtIndex:indexPath.row];

NSArray *chunks = [item.name componentsSeparatedByString: @","];

NSString *name;
NSString *book;
NSString *chapter;

if ([chunks count] > 0)
{
    name = [chunks objectAtIndex:0];
    if ([chunks count] > 1)
    {
        book = [chunks objectAtIndex:1];
        if ([chunks count] > 2)
        {
            chapter = [chunks objectAtIndex:2];
        }
    }
}

cell.textLabel.text = name;
cell.detailTextLabel.text = book;
4

3 に答える 3

1

カスタムが必要になるように思えUITableViewCellますが、それを使用して、好きなものを追加できます。そこから、それに入れたラベルに名前を付け、それに応じてコードを記述してcellForRowAtIndexPathメソッドで埋めます。

于 2012-08-27T18:47:10.240 に答える
0

カスタム UIView を作成し、サブビューとしてセルの contentView に追加します。このカスタム ビューで、必要な数の UILalel を追加します。これを行うために実際にカスタム ビューを作成する必要はありませんが、より汎用性が高くなります。

3 つのラベルを作成するための基本的なコードを次に示します。

UIView * pNewContentView= [[UIView alloc] initWithFrame:cell.contentView.bounds];
CGRect labelFrame= pNewContentView.bounds;
labelFrame.size.width= labelFrame.size.width * 0.33;

UILabel* pLabel1=[[UILabel alloc] initWithFrame:labelFrame];
[pNewContentView addSubview:pLabel1];

labelFrame.origin.x= labelFrame.size.width;
UILabel* pLabel2=[[UILabel alloc] initWithFrame:labelFrame];
[pNewContentView addSubview:pLabel2];

labelFrame.origin.x= labelFrame.origin.x + labelFrame.size.width;
UILabel* pLabel3=[[UILabel alloc] initWithFrame:labelFrame];
[pNewContentView addSubview:pLabel3];

[cell.contentView addSubview:pNewContentView];
于 2012-08-27T18:16:35.847 に答える
0

必要なものが単に別のラベルである場合は、マークが言うことを実行し、サブビューを作成してセルに設定できます。

何かをもっとできるようにしたい場合は、カスタム UITableViewCell が必要です。ボタンやその他のコントロールを定義できます。Apple が提供するこのドキュメントを見てください。このドキュメントは、UITableViewCell がどのように機能するかを理解するのに本当に役立つので、読む価値があります。

于 2012-08-27T18:24:06.593 に答える