1

入力したテキストに基づいて各セル サイズが計算される UITableView を作成しています。heighForRowAtIndexPath でセルのサイズを計算しています

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    NSString *text = [tableData objectAtIndex:[indexPath row]];

    CGSize constraint = CGSizeMake(210.0f, 20000.0f);
    size = [text sizeWithFont:[UIFont systemFontOfSize:12.0f] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];

    height = MAX(size.height, 44.0f);

    return height + (CCM * 2);
}

これが各セルの高さを計算する方法です。私の質問は、コメントボックスのように各セルに画像を追加したいですか? このように ここをクリックして、私が探しているコメント ボックスを表示します

これらの種類のコメントボックスを見ることができます。最初に画像を2つの部分に分けました.最初の部分はすべてのセルでうまく機能しています.最初の画像は今来ています.セルUILableの小さなテキストの問題に直面している. UILabel のテキストのサイズが大きくなったときにうまく機能し、適切に調整されていません

-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *identifier = @"cell";

    NSLog(@"index path %d", indexPath.row);

    MyTableCell *cell = (MyTableCell *)[tableView dequeueReusableCellWithIdentifier:identifier];

    if (cell == nil) 
    {
        cell = [[[MyTableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }

    [cell.cellBackgroundBottom setFrame:CGRectMake(75.0f, 92.0f, 228.0f, height + 25.0f)];

    [cell.cellContent setText:(NSString*)[tableData objectAtIndex:[indexPath row]]];
    [cell.cellContent sizeToFit];

    CGRect theFrame = [cell.cellContent frame];
    theFrame.size.width = 210.0f;
    [cell.cellContent setFrame: theFrame];

    return cell;
}

MYTableCell という名前の 1 つの UITableView サブクラスを作成し、各セル内で必要なものをすべて定義しました。

 // Creating UILabel for cell content or comments block

        cellContent = [[UILabel alloc]initWithFrame: CGRectMake( 90.0f, 15.0f, 210.0f, 60.0f)] ;
        [cellContent setLineBreakMode:UILineBreakModeWordWrap];
        cellContent.numberOfLines = 0;
        [cellContent setMinimumFontSize:15.0f];
        [cellContent setBackgroundColor:[UIColor clearColor]];
        //   [cellContent setTextColor:[UIColor colorWithRed:73.0f green:73.0f blue:73.0f alpha:1.0f]];
        [cellContent setFont:[UIFont fontWithName:@"Helvetica" size:12.0f]];
        cellContent.textAlignment = UITextAlignmentLeft;
        [cellContent setTag:1];
        [self addSubview:cellContent];
        [cellContent release];

        cellBackgroundTop = [[UIImageView alloc] initWithFrame:CGRectMake(60.0f, 5.0f, 243.0f, 13.5f)];
        [cellBackgroundTop setImage:[UIImage imageNamed:@"comments.png"]];
        [self addSubview:cellBackgroundTop];
        [cellBackgroundTop release];

        cellBackgroundBottom = [[UIImageView alloc] initWithFrame:CGRectZero];
        [cellBackgroundBottom setImage:[UIImage imageNamed:@"Untitled-1_09.png"]];
        [self addSubview:cellBackgroundBottom];
        [cellBackgroundBottom release];
4

1 に答える 1

0

質問に対する回答を得ました。これは私の cellForRowAtIndexPath でしなければならないことです

 NSString *text = [tableData objectAtIndex:[indexPath row]];

    CGSize constraint = CGSizeMake(210.0f, 20000.0f);

    CGSize size1 = [text sizeWithFont:[UIFont systemFontOfSize:12.0f] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];

    CGFloat height1 = MAX(size1.height, 44.0f);

    [cell.cellBackgroundBottom setFrame:CGRectMake(75.0f, 18.0f, 228.0f, height1 + 10.0f)];
于 2012-09-21T07:29:34.550 に答える