いや〜、長い事かかりましたがようやく解決しました。
ぴょこっと出す吹き出しという事ですが、
結論から言うと、CALayerを使いました。
というのも、
・layerの方が軽いというつぶやきを誰かがしてた
・CAKeyframeAnimationを使いたかった
・core animationを勉強したのに使わないのは悔しい
という3点から (苦笑)
core animationはすごく直感的でわかりやすかったのですが、
CALayerを使う上で苦労したのは再描画です。
まず、layerをメイン画面のview.layerにaddSublayerします。
ぴょこんと飛び出すわけですから、初期状態ではサイズ(0, 0)にします。
そのレイヤーに関してaddAnimationするんですが、
デフォルトではsetNeedsDisplayされるのはおそらく
addSublayerされた時のみです。
そのため、描画は変わらず(今回は吹き出し模様が変化しない)、
外枠のみ拡大されていくわけです。
ちなみに背景を白くしてるとわかりやすいですよ。
大変だったのはずばりここですね。
今さっきなんとか解決したんですが、
ポイントは以下の2点です。
・NSTimerを使って逐一layerにsetNeedsDisplayを送る
・同じタイミングでlayer.frame.sizeも更新する
上の2点を改善して初めて解決しました。
つまり、「アニメーション上は形状が変形していても
実際のlayer.frame.sizeは変化していない」という事です。
具体的なコードは省略しますが、ココを参考にしたので紹介します。
http://blog.omnigroup.com/2008/11/14/animating-calayer-content/
サンプルコードもあるのでためになるかと。
あとは吹き出しに文字表示です。
CALayerのCGContextに表示しているので、
CGContextSetTextPositionとかを使えばいいんだろうか。
あと、字体に制限があるという噂が。
どうしましょうかね〜