2018年12月1日土曜日

土曜日プログラマ

歌詞XMLの情報から
歌詞をスクロールする場合のオフセット量を
表示するViewの幅から動的計算

優先順位をつけて解析
 (1)Macのエディタで入れた連文節フラグ
 (2)ユニコードをチェックして
     1バイトと2バイトの文節が存在する場合
     なるべくバイト切り替わるところ
  (英単語の間でオフセットしないようにする)
 (3)空白コードがある場合
 (4)単語
という感じで歌詞として見た上で
どのあたりで流れるのが自然かを判定して切るように

歌詞が入った文字列配列に対して
StringのExtentionとディクショナリfilterのクロージャーで

こんな書き方でバイト数のディクショナリ再作成できるんだもんなー
Swiftなれると楽すぎてC言語で仕事するのがダルくなる

コードが確定したのでリファクタして
演算回数を減らしとくか



表示データの整理
作品名を表示するのを止めて
間を詰めることによって
大きいアイコンの場合でも
ギリギリかぶらなくする

継承クラスでレイヤーを消しても
基底クラスの設定関数が
letでチェックしてるので
飛ばされる

これで横画面やiPadで表示する場合でも
基底クラスで処理できる

らくちん

表示データの整合性チェック

ほぼないんだけど、
歌詞データロードイベント中に
曲変更された場合に

前の曲の歌詞データで
新しい曲を表示しないように
PrsistentIDをチェックするようにする
Objective-Cの場合はここまでやってなかったんだけど

コード的には
歌詞ローダクラス(千歌)
演奏データ管理クラス(梨子)
の保持しているPrsistentIDをチェックするだけなんだけど

管理クラスから千歌クラスと梨子クラスの状態を
チェックするカップリング関数とか

無駄にどうでもいいことを考えながら組む

ちなみにPrsistentIDを設定してなくてバグった

歌詞ローダークラスの管理構造体に入れ忘れだと思ったけど


演奏データ管理クラス側だった



0 件のコメント:

コメントを投稿