我正在iOS上实施IM应用程序。我发现320库具有TTStyledTextlabel,可提供诸如显示图像和URL链接的酷功能。但是,我想将ttStyledTextlabel嵌入消息气泡中(就像iPhone运送的SMS应用程序一样),在这里我需要标签来根据文本长度调整其尺寸。我发现ttStyledTextlabel可以根据其宽度调整其高度,但是当文本非常短并且无法填满整个线时,我不知道该如何水平收缩。有什么建议么?

有帮助吗?

解决方案

我认为我有一个更好的解决方案:我获得了ttStyledText的根架,并在其兄弟姐妹框架上迭代以找到最大宽度。

它是这样的工作:

    TTStyledTextLabel* label = [[TTStyledTextLabel alloc] init];
    label.text = [TTStyledText textFromXHTML:myTextToBeDisplayed];
    [label sizeToFit];
    CGFloat maxWidth = 0;
    TTStyledFrame *f = label.text.rootFrame;
    while (f) {
        int w = f.x + f.width;
        if (w > maxWidth) {
            maxWidth = w;
        }
        f = f.nextFrame;
    }
    return CGSizeMake(maxWidth, label.height);

其他提示

我尝试通过将大小的宽度参数逐步传递到sizetofit,并查看最终的高度来进行此操作,以根据是否正常提供提示。但这不是一个优雅的解决方案

for(int index = 100; index <320; index = index+30)

{label.width = x; if(label.height <20)休息;

}

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top