8

uitableview セルのテキスト ラベルの高さを計算しようとしています。sizewithfont が iOS 7 で非推奨になったことを確認した後、sizewithattributes を実装しましたが、戻り値は、ラベルが含まれるテキストに対して正しいサイズであるために必要な値よりもはるかに小さかったです。sizetofit メソッドも試してみましたが、役に立ちませんでした。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    NSDictionary *message =  self.messages[indexPath.row];

    UILabel *nameLabel = (UILabel *)[cell.contentView viewWithTag:1];
    UILabel *messageContent = (UILabel *)[cell.contentView viewWithTag:3];
    UIImageView *image = (UIImageView *)[cell.contentView viewWithTag:2];
    messageContent.text = [message objectForKey:@"messageContent"];
    NSString *content = [message objectForKey:@"messageContent"];
    NSLog(@"Message: %@", content);

    CGSize textSize = [content sizeWithAttributes:@{ NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Light" size:17.0]}];
    messageContent.font = [UIFont fontWithName:@"HelveticaNue-Light" size:17.0];
    CGRect messageFrame = messageContent.frame;
    messageFrame.size = textSize;
    messageContent.frame = messageFrame;


    nameLabel.text = [message objectForKey:@"senderName"];
    NSString *senderPicture = [message objectForKey:@"senderPicture"];
    UIImage* myImage = [UIImage imageWithData:
                    [NSData dataWithContentsOfURL:
                     [NSURL URLWithString: senderPicture]]];

    image.image = myImage;
    image.layer.cornerRadius = 27.0;
    image.layer.masksToBounds = YES;

    //Configure the cell...

    return cell;
  }
4

1 に答える 1