0

私はiOSプログラミングが初めてで、テーブルビューを持つアプリを開発しています。

テーブル データは plist ファイルによって読み込まれています。テーブルの 1 行は長く、一貫性がないため、動的な高さが必要です。

これは私がこれまでに持っているものです:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    NSString *cellText    = @"This is a very long peice of text to show up here and here";// this will eventually be data from a plist
    UIFont *cellFont      = [UIFont fontWithName:@"Helvetica-neuve" size:21.0];
    CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
    CGSize labelSize      = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
    int buffer  = 70;
    return labelSize.height + buffer+100;


   //return 65; 

}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"CustomTableCell";
    static NSString *CellNib = @"DetailViewCell";



    DetailViewCell *cell = (DetailViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellNib owner:self options:nil];
        cell = (DetailViewCell *)[nib objectAtIndex:0];


        cell.cellSubtitleLabel.lineBreakMode = UILineBreakModeWordWrap;
        cell.cellSubtitleLabel.numberOfLines = 0;
        cell.cellSubtitleLabel.font = [UIFont fontWithName:@"Helvetica-neuve" size:21.0];




    }   

    cell.accessoryType = UITableViewCellAccessoryNone;


    informations = [[NSArray alloc] initWithObjects:@"Title", @"Country", @"State", @"Population",  @"Info",  nil];
    subtitles = [[NSArray alloc] initWithObjects:titleString, subtitleString, stateString, populationString, @"This is a very long peice of text to show up here and here", nil];


    cell.cellTitleLabel.text = [informations objectAtIndex:indexPath.row];
    cell.cellSubtitleLabel.text = [subtitles objectAtIndex:indexPath.row];

    return (DetailViewCell *) cell; 
}

私はこれを高さが大丈夫なところまで手に入れることができました。しかし、ラベルのテキストは表示されません。これをラベルの高さで絞り込みました。23 です (Interface Builder で設定)。サイズを大きくすると、他のセルが台無しになります。内容に基づいてラベルの高さを変更する必要があります。

2日間試行錯誤しましたが、まだうまくいかないので、誰かがこれを手伝ってくれませんか。また、私はこれについて初心者なので、詳細に説明してください;)

どうもありがとう

ライアン。

4

1 に答える 1

0

私は現在同じことをしています。これが私がすることです。

メソッドcellForRowAtIndexPathを使用して、コールバックで UILabel のサイズを変更します。sizeToFit

[contentViewCell.myTextLabel sizeToFit];

これがあなたを助けることを願っています。

于 2013-01-08T07:21:05.140 に答える