【问题标题】:Is there a way to obtain the length of the cell's subtitle (detailedTextLabel)?有没有办法获取单元格的字幕长度(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);
}

基本上,我想知道字幕什么时候会达到一定的长度,以便我可以调整粉丝标签向上移动(如下图所示)。目前粉丝标签与字幕重叠,我希望在发生这种情况时能够将标签向上移动。

那么获得准确的字幕长度的最佳方法是什么?

【问题讨论】:

  • 如果你这样做肯定会看起来很糟糕?为什么不只使用较短的标签并截断任何长文本,或者将字幕文本放在两行上?

标签: objective-c ios subtitle


【解决方案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:及相关方法。

    【讨论】:

      猜你喜欢
      • 2016-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-08
      相关资源
      最近更新 更多