2

私はそれに飛び込んでいます。

で吹き出しを描いていUIBezierPathます。吹き出しは問題なく、期待どおりに機能します。問題は、どのように吹き出しにテキストを追加して、UIBezierPath. テキストを描画した経験がなく、考えられる解決策を思いつくのに苦労しています。

吹き出し内にテキストビューを収めようとしましたが、うまくいきませんでした。吹き出しをもっと使いたいと思います。テキストビューでは、長方形の形状しか使用できません。バブルを上から下に塗りつぶし、中央の幅全体を使用したいと思います。

どんな助けや提案も大いに感謝します。

ここに画像の説明を入力

4

1 に答える 1

3

わかりました、ベジエパスでテキストを描画/レンダリングする方法をようやく見つけました.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://侵襲コード.tumblr.com/core-text

今、すべてのテキストを含むベジェパスのサイズを計算する方法と、ベジェパスとコアテキストを一緒に移動する方法を理解する必要があるだけです。それらは異なる座標系で実行され、あらゆる種類の問題を引き起こしています。だから、誰かがこれを経験したことがあるなら、私はすべての耳です!

よろしくモーテン

于 2012-07-17T10:54:11.687 に答える