これはちょっと残念です。私は2つの不透明度のint値を決定したい。 1つは増加し、もう1つは時間によって減少するはずです。現在の時刻で2つのint値を計算する
1日は4つの部分で構成されているとします。夜、日の出、日、日没。各部品は、 の2枚の画像が重ね合わせて描かれています。夜には夜のイメージと日の出のイメージがあります。真夜中の夜の画像は、日の出は実際には見えないが、不透明度は255と言うことができます。
時間が経過するまで、 4時に、夜の画像の不透明度が低下し、日の出の不透明度が増加します。 5時の夜には画像の不透明度が0で、日の出の画像の不透明度は255です。
したがって、4つの部分のそれぞれで、2つの不透明度の値を計算します。各パートでは不透明度が255から0になり、他の側に0〜255
にこれは私がこのソリューション
int opacIn = hour * 10;
if (opacIn >= 230) {
opacIn += 25;
}
int opacOut = 255 - opacIn;
でそれを試してみました時間
switch (hour) {
//night to sunrise
case 23: case 0: case 1: case 2: case 3: case 4:
[self setSetting:1 andOpacity:opacIn andOpacity:opacOut];
break;
//sunrise to day
case 5: case 6: case 7: case 8: case 9: case 10:
[self setSetting:1 andOpacity:opacIn andOpacity:opacOut];
break;
//day to sunset
case 11: case 12: case 13: case 14: case 15: case 16:
[self setSetting:4 andOpacity:opacIn andOpacity:opacOut];
break;
//sunset to night
case 17: case 18: case 19: case 20: case 21: case 22:
[self setSetting:2 andOpacity:opacIn andOpacity:opacOut];
break;
}
で部品を区切る方法です
これは、1日中の不透明度を決定する問題です。したがって、1回だけ255から0になります。しかし、私はそれが今日の各部分のためにこの方法であることを望んでいます。
これに関するご意見はありますか?どのように各部品の不透明度を決定できますか?