最后到达那里,你可以这样做:
// Create an attributed string
CTLineRef line = CTLineCreateWithAttributedString(_string);
// Get an array of glyph runs from the line
CFArrayRef runArray = CTLineGetGlyphRuns(line);
// loop through each run in the array
CTRunRef run = ....
// Get the range of the run
CFRange range = CFRangeMake...
// Use CTRunGetImageBounds
CGRect glyphRect = CTRunGetImageBounds(run, context, range);
// glyphRect now contains the bounds of the glyph run, if the string is just 1 character you have the correct dimensions of that character.