美文网首页
计算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