2011/02/06

CATextLayer あんど MusicView

前回のエントリを書き込んだ後、
寝る間際に、鏡の国のアリスというか、西洋のお伽話の様な幻聴が聞こえました。
人生初経験です。
きっと作業BGMとして聞いていたconnectの所為だな。

昨晩は、さすがに怖くなったので休息ということでゆっくり寝ました。

良い子のみんな、
全力モードでの連続作業は程々にね!
休憩を取りたくなったら会社でゆっくり仕事するんだ!


閑話休題



さてさて、3日くらいかけて、CATextLayerを弄っていたのですが、

今回の作業は、タイトル名とアーティスト名の横幅の長さ調整です。




CATextLayerのエントリにもあるように、
フォントのサイズを縮めていくことで、
どんな長さが来ても、一定の幅に収めることはできるんですが、
文字の大きさが長さに反比例してしまいます。

とくにiPhone/iPodは画面がそれほど大きいわけではないので、
一定以上のタイトルや、複数人アーティストの場合は、
車載用途ではほとんど読み取れない。
という状況になってしまいます。これはマズイですね。



本題。

先日から弄っていたのは、タイトルとアーティストのCATextLayerの上に、
クリアバックグラウンド(背景透明)のCATextLayerを置いて、
CATextLayerの1段/2段切り替え表示
が出来るようにしていました。


そう、これがやりたかったんです。


ただ、2段にした場合は、
歌詞ウインドウと、先日作った大きいジャケットウインドウへ、
フォーメーション変更する場合

あと、先日実装した
次の曲へ移動する場合のアニメーション表示

すべて直さなければ、スムーズに繋がらなくなってしまうので、

楽曲ウインドウ周りを大工事していました。




以下相変わらず特定の人たち向けのサンプル画像








何気に、2行にするロジックに梃子摺りました。

洋楽、邦楽、アニソンジャンルによって、
曲のタイトル表記も色々で、
簡単には切らせてくれない。



()とかは良いんですが、とかは上手く切らないと、
特に曲名は~を使われることがたまにあるので、失敗する。

NSStringは検索すると一々NSRangeという範囲で返してくるので、
扱いにくい。

あとはアーティスト名が1人でなく、複数の場合は切っているのですが、
偶数人と奇数人で上下段の割り振りを変えなくてはなりません。

これはデリミタを指定した上で、Arrayに突っ込んでから、
ObjectiveCの裏技で、小数点for文で解決。

良い子は真似しちゃダメだよ。



ここ数日CATextLayerと幻聴と格闘した上、
なんとか仲直りすることができた気がします。




余談ですが、曲表示関連のViewクラスのコードサイズが、
他のクラス全部足したより大きいくらいになってました。



76kByte、1616行か...




そろそろ、車載モニター系のビューを拡充しようと考えてますが、
デザインがイマイチ思いつかないのでもう少し保留かな。


きっと次回のエントリも、楽曲関連でお送りしマース。

0 件のコメント:

コメントを投稿