Search code examples
alignmentcore-text

Vertical align with Core Text?


An image clarifying things

How do I change the vertical alignment of the text in a CTFramesetter frame? I want my text to be in the middle instead of being at the top. I am using Core Text framework. There is a setting of the paragraph to change horizontal aligment but not vertical.


Solution

  • Finally figured it out ...

    CGRect boundingBox = CTFontGetBoundingBox(font);
    
    //Get the position on the y axis
    float midHeight = self.frame.size.height / 2;
    midHeight -= boundingBox.size.height / 2;
    
    CGPathAddRect(path, NULL, CGRectMake(0, midHeight, self.frame.size.width, boundingBox.size.height));