アプリ開発日記 #61 Xamarin.iOSの資産カタログを使用した色指定

実際にやったこと

ダークモードに対応するために、Xamarin.iOSの画面のBackground Colorおよび、Text Colorを資産カタログを使用するように変更しました。

資産カタログのカラーセットでは、Appearnceを「Any,Dark,Light」を指定することで、iOSでダークモードが利用できるようになります。
そのため、今まで、直接指定していたBackground Colorおよび、Text Colorを資産カタログを使用するように変更しました。

しかし、資産カタログの設定をしても色が変わりません。
そして、ソースコードで色指定していた箇所について以下のコードに変更してデバッグ実行した結果ある事実に気が付きました。

var color = UIColor.FromName("Color");

なんと、デバッグ実行してみると、アルファの値が1となっていました。
そして、なぜ1となっているのか調べてみたところ、資産カタログでアルファの値を1にしていたことが原因のようでした。

しかし、資産カタログの色設定は、sRGBによる指定であり、sRGBで色を設定する場合は、0~1の間で値を設定する必要があります。
また、以下のソースコードで色を指定するとアルファの値は255となります。

var color = UIColor.FromRGB(150,90,42);

おそらく、UIColor.FromNameにバグがあり、sRGBで1を指定した場合に正しく値が指定できないようです。
そのため、sRGBで指定できる1に限りなく近い値として、資産カタログに0.99999を指定しました

その結果資産カタログの色がとりあえず画面に設定できるようになりました。

ダークモード対応で解決できていない問題

ibtoolでエラーが出てしまい、ビルドができなくなってしまいました。
ネットを検索したところ、Xcodeのアップデートをするなどの情報がありましたが、原因がよくわかっていません。

時間が解決してくれる(Xamarinの中の人がバグを直してくれて、次回アップデート時には解決している)といいんだけどな。。。

過去に作成したアプリ

①概算家計簿
家計簿を毎日つけれれないあなたのための家計簿アプリです。
f:id:b-kimagure:20190722205238p:plain:w150
Google Play で手に入れよう

②ToDoボタン
忙しくてついつい放置してしまう家事
そんな家事の最後にやった日を記録するアプリです。
f:id:b-kimagure:20190805230012p:plain:w150
Google Play で手に入れよう

③がんばる!!その前に
いつも行き当たりばったりになってしまうあなたに。
何かを始める前に自分の強みや周りの状況を客観視し、どうすればうまくいくかを考えてみませんか。
このアプリは、そんなあなたを助けるためのアプリです。
f:id:b-kimagure:20190902202757p:plain:w150
Google Play で手に入れよう

今読んでる本

「ひとり情シス」虎の巻

「ひとり情シス」虎の巻

「ついやってしまう」体験のつくりかた 人を動かす「直感・驚き・物語」のしくみ

「ついやってしまう」体験のつくりかた 人を動かす「直感・驚き・物語」のしくみ