0

テキストを 2 行以上にできるようにラベルを固定幅に設定したいのですが、UITableViewCell別のビューを表示するためにセルの右側に常にスペースを確保します。

これまでのところ、これを試してみましたが、うまくいきません。ダーンドセルUILabel全体をちょうど横切って走っています。テキストが 2 行目に折り返される前に、セルの 3/4 程度に到達するように制限したいと考えています。

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

    static NSString *MyIdentifier = @"MyIdentifier";

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

        [cell.textLabel setLineBreakMode:NSLineBreakByWordWrapping];
        cell.textLabel.minimumScaleFactor = 0;
        [cell.textLabel setNumberOfLines:0];
        [cell.textLabel setFont:[UIFont boldSystemFontOfSize:FONT_SIZE]];
        [cell.textLabel setBackgroundColor:[UIColor clearColor]];;

        NSString * labelText = myString; // lets just pretend this works. I have somethign else here.

        CGSize constraint = CGSizeMake((CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2) - 100.0f), 20000.0f); // Ultimate cell 
        CGSize size = [labelText sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping];
        [cell.textLabel setText:labelText];
        [cell.textLabel setFrame:CGRectMake(CELL_CONTENT_MARGIN, CELL_CONTENT_MARGIN, CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2) - 180.0f, MAX(size.height, 36.0f))]; // Lets me get the height of the text, supposedly.
        }

// more stuff....

}
4

2 に答える 2

2

UITableViewCell をサブクラス化し、ラベルのサイズを に設定する必要がありますlayoutSubviews

セルを作成しているときはラベルのサイズが正しく設定されていますが、セルが画面に描画されるたびにサイズが UITableViewCell メソッドによって「上書き」されるため、変更は見られません。

于 2013-06-04T10:48:14.510 に答える
0

これを試してみてください。文字列サイズのラベルの高さを取得します

CGSize maximumLabelSize = CGSizeMake(width, FLT_MAX);
    CGSize expectedLabelSize = [string sizeWithFont:font constrainedToSize:maximumLabelSize lineBreakMode:NSLineBreakByTruncatingTail];
//you get height from expectedLabelSize.height
于 2013-06-04T11:31:12.780 に答える