我正跳进去。
我正在绘制一个带有UIBezierPath
的讲话泡泡,泡泡很好,并且按照我的预期工作。问题是我如何在讲话泡泡中添加文字以使其保留在UIBezierPath
内。我没有绘制文字的经验,而且我很难想出可能的解决方案。
我试图在泡泡中插入一个textview,但解决方案效果不好,我想使用更多的语音泡泡。使用textview我只能使用矩形形状,我想从上到下填充气泡,并使用中间的完整宽度。
任何帮助和建议都会受到很多关注。
答案 0 :(得分:3)
好的,我终于想出了如何在bezierpath上绘制/渲染文本,可以通过获取CGPath并使用核心文本来完成。我做过这种方法。
-(void)drawText:(NSString *)text {
CGContextRef myContext = UIGraphicsGetCurrentContext();
CGContextSaveGState(myContext);
CGContextTranslateCTM(myContext, 0.0f, self.frame.size.height);
CGContextScaleCTM(myContext, 1.0f, -1.0f);
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef)attString); // 7-2
CTFrameRef theFrame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, [attString length]), path, NULL); // 8-2
CTFrameDraw(theFrame, myContext); // 11-2
CGContextRestoreGState(myContext);
}
我跟随本教程,女巫很优秀。 http://invasivecode.tumblr.com/core-text
现在我只需要弄清楚如何计算bezierpath的大小以包含所有文本,并弄清楚如何将bezierpath和核心文本一起移动,它们在不同的坐标系上运行并给我一切问题。所以,如果有人有这方面的经验,我全都听见了!
最诚挚的问候 的Morten