前回のエントリを書き込んだ後、
寝る間際に、鏡の国のアリスというか、西洋のお伽話の様な幻聴が聞こえました。
人生初経験です。
きっと作業BGMとして聞いていたconnectの所為だな。
昨晩は、さすがに怖くなったので休息ということでゆっくり寝ました。
良い子のみんな、
全力モードでの連続作業は程々にね!
休憩を取りたくなったら会社でゆっくり仕事するんだ!
閑話休題
さてさて、3日くらいかけて、CATextLayerを弄っていたのですが、
今回の作業は、
タイトル名とアーティスト名の横幅の長さ調整です。
CATextLayerのエントリにもあるように、
フォントのサイズを縮めていくことで、
どんな長さが来ても、一定の幅に収めることはできるんですが、
文字の大きさが長さに反比例してしまいます。
とくにiPhone/iPodは画面がそれほど大きいわけではないので、
一定以上のタイトルや、複数人アーティストの場合は、
車載用途ではほとんど読み取れない。
という状況になってしまいます。これはマズイですね。
本題。
先日から弄っていたのは、タイトルとアーティストのCATextLayerの上に、
クリアバックグラウンド(背景透明)のCATextLayerを置いて、
CATextLayerの1段/2段切り替え表示
が出来るようにしていました。
そう、これがやりたかったんです。
ただ、2段にした場合は、
歌詞ウインドウと、先日作った大きいジャケットウインドウへ、
フォーメーション変更する場合
あと、先日実装した
次の曲へ移動する場合のアニメーション表示
すべて直さなければ、スムーズに繋がらなくなってしまうので、
楽曲ウインドウ周りを大工事していました。
以下相変わらず特定の人たち向けのサンプル画像
何気に、2行にするロジックに梃子摺りました。
洋楽、邦楽、アニソンジャンルによって、
曲のタイトル表記も色々で、
簡単には切らせてくれない。
()とかは良いんですが、
~とか
-は上手く切らないと、
特に曲名は~を使われることがたまにあるので、失敗する。
NSStringは検索すると一々NSRangeという範囲で返してくるので、
扱いにくい。
あとはアーティスト名が1人でなく、複数の場合は切っているのですが、
偶数人と奇数人で上下段の割り振りを変えなくてはなりません。
これはデリミタを指定した上で、Arrayに突っ込んでから、
ObjectiveCの裏技で、
小数点for文で解決。
良い子は真似しちゃダメだよ。
ここ数日CATextLayerと幻聴と格闘した上、
なんとか仲直りすることができた気がします。
余談ですが、
曲表示関連のViewクラスのコードサイズが、
他のクラス全部足したより大きいくらいになってました。
76kByte、1616行か...
そろそろ、車載モニター系のビューを拡充しようと考えてますが、
デザインがイマイチ思いつかないのでもう少し保留かな。
きっと次回のエントリも、楽曲関連でお送りしマース。