2011-10-24 108 views
0

我有一个属性字符串,我想使用核心文本将其对齐到矩形路径中。有没有办法让CTFrameSetter/CTFrame做到这一点,还是我需要手动做到这一点?手工的方式存在:使用核心文本将文本对齐框架的底部

  1. 图出来使用CTFramesetterSuggestFrameSizeWithConstraints
  2. 框架的高度调整的路径的高度。
+0

在什么语言? –

+0

我以为Core Text API只有我可用? – Aderstedt

回答

0

您必须手动完成。

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)); 

参考:Vertical align with Core Text?

+0

如果您使用多种字体会怎样? –

+0

我无法理解你如何使它工作。 是用于绘制框架的路径吗?它如何与多行工作?不是为单行计算的边界框? – MatterGoal