IOS 文本操作获取显示文本宽度

来源:互联网 发布:业主信息采集软件 编辑:程序博客网 时间:2024/04/29 13:56
NSGraphicsContext* newCtx = [NSGraphicsContext graphicsContextWithGraphicsPort:bitmapContext flipped:true];[NSGraphicsContext saveGraphicsState];[NSGraphicsContext setCurrentContext:newCtx];NSAttributedString *string = /* make a string with all of the desired attributes */;[string drawInRect:locationToDraw];

[NSGraphicsContext restoreGraphicsState];

int charCount = [string length];        CGGlyph glyphs[charCount];        CGRect rects[charCount];        CTFontGetGlyphsForCharacters(theCTFont, (const unichar*)[string cStringUsingEncoding:NSUnicodeStringEncoding], glyphs, charCount);        CTFontGetBoundingRectsForGlyphs(theCTFont, kCTFontDefaultOrientation, glyphs, rects, charCount);        int totalwidth = 0, maxheight = 0;        for (int i=0; i < charCount; i++)        {            totalwidth += rects[i].size.width;            maxheight = maxheight < rects[i].size.height ? rects[i].size.height : maxheight;        }        dim = CGSizeMake(totalwidth, maxheight);

0 0
原创粉丝点击