美文网首页
计算UILabel上某段文字的frame

计算UILabel上某段文字的frame

作者: lanmoyingsheng | 来源:发表于2018-06-20 12:48 被阅读24次

可扩展为:在文本的最后面添加按钮,为按钮的位置就是根据下面返回的rect变化来的。

@implementation UILabel (TextRect)
- (CGRect)boundingRectForCharacterRange:(NSRange)range
{
    NSTextStorage *textStorage = [[NSTextStorage alloc] initWithAttributedString:[self attributedText]];
    NSLayoutManager *layoutManager = [[NSLayoutManager alloc] init];
    [textStorage addLayoutManager:layoutManager];
    NSTextContainer *textContainer = [[NSTextContainer alloc] initWithSize:[self bounds].size];
    textContainer.lineFragmentPadding = 0;
    [layoutManager addTextContainer:textContainer];
    NSRange glyphRange;
    [layoutManager characterRangeForGlyphRange:range actualGlyphRange:&glyphRange];
    return [layoutManager boundingRectForGlyphRange:glyphRange inTextContainer:textContainer];
}

参考:多年iOS开发经验总结汇总 #46

相关文章

网友评论

      本文标题:计算UILabel上某段文字的frame

      本文链接:https://www.haomeiwen.com/subject/ebatyftx.html