UITabel UITableViewCell中的UILabel - 切断信息

时间:2013-12-14 20:14:13

标签: ios objective-c cocoa-touch uitableview uilabel

我正在开发一个iOS应用程序,在UITableView中显示有关我的Facebook好友的信息,我遇到了问题。我使用带有2个UILables的自定义单元格(字段和描述):

enter image description here

在字段标签中,我设置了教育,工作等信息的类别。在描述标签中,我设置了相应的信息:

enter image description here

我的问题是标签不符合信息的大小,并切断了部分信息,如上所示。我厌倦了寻找解决方案,但我一无所获。我已经尝试实现此答案中的代码(Adjust UILabel height depending on the text)而无法正常工作!

有什么建议吗? TKS

2 个答案:

答案 0 :(得分:1)

UILabels很好,但为什么不使用UITextView?您可以在textView中使用\ n,我可以看到标签中有大文本,根据文本大小缩放字体大小并不是很好的决定。只需将textView添加到自定义单元格,禁用用户交互,将可编辑设置为NO,即可完成。您还可以使用此代码更改单元格高度,具体取决于文本大小:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    //Load text in NSString which you want in Cell's textView.
    NSString *cellText;

    cellText = @"Insert your text here";

    //define font for textView...
    UIFont *cellFont = [UIFont fontWithName:@"Georgia" size:19.0];//change your font here

    CGSize constraintSize = CGSizeMake(330.0f, MAXFLOAT);

    CGSize labelSize_val = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];

    return labelSize_val.height + 20;
} 

答案 1 :(得分:0)

您在Adjust UILabel height depending on the text找到的答案是一个良好的开端。

另外,请确保使用以下内容设置行高:https://developer.apple.com/Library/ios/documentation/UIKit/Reference/UITableViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UITableViewDelegate/tableView:heightForRowAtIndexPath

要谨慎的另一个方面是UILabel的自动调整大小。