有没有办法获取单元格的字幕长度(detailedTextLabel)?
Posted
技术标签:
【中文标题】有没有办法获取单元格的字幕长度(detailedTextLabel)?【英文标题】:Is there a way to obtain the length of the cell's subtitle (detailedTextLabel)? 【发布时间】:2011-10-22 09:05:24 【问题描述】:正如问题中提到的,我想获取字幕的长度(topic.context)并用它来做出某些决定(见下面我的代码sn-p)
cell.detailTextLabel.text = topic.context;
NSString *fanLabelText = [NSString stringWithFormat:@"%i fans",topic.num_fans];
if (topic.context && ![topic.context isEqual:[NSNull null]] && topic.context.length > 46)
thisFanLabel.frame = CGRectMake(320 - 150, -10, 100, 44);
else
thisFanLabel.frame = CGRectMake(320 - 150, 0, 100, 44);
基本上,我想知道字幕什么时候会达到一定的长度,以便我可以调整粉丝标签向上移动(如下图所示)。目前粉丝标签与字幕重叠,我希望在发生这种情况时能够将标签向上移动。
那么获得准确的字幕长度的最佳方法是什么?
【问题讨论】:
如果你这样做肯定会看起来很糟糕?为什么不只使用较短的标签并截断任何长文本,或者将字幕文本放在两行上? 【参考方案1】:您可以使用以下几行检查具有特定字体的字符串的大小:
CGSize maxSize = CGSizeMake(9999,9999);
UILabel *myLabel = cell.detailTextLabel;
CGSize sizeOfString = [myLabel.text sizeWithFont:myLabel.font
constrainedToSize:maxSize
lineBreakMode:myLabel.lineBreakMode];
在“sizeOfString”中,您现在应该有您的 detailLabel 的大小。
【讨论】:
【参考方案2】:见NSString
的-sizeWithFont:
及相关方法。
【讨论】:
以上是关于有没有办法获取单元格的字幕长度(detailedTextLabel)?的主要内容,如果未能解决你的问题,请参考以下文章
如何获得 UITableViewCell 字幕显示特定单元格被点击了多少次?