Objective-C animateWithDurationでbackgroundColorが動かないとき

公開: 2016-02-13 00:24
更新: 2016-04-29 06:03

どうもこんにちは。あっきぃです。

最近無駄に朝散歩してるんですが、短めの坂を登ったところに人の顔が彫られた直径40センチくらいの岩が落ちてます。この前まではこちらをじーっと見てましたが、最近は茂みの方を向いています。なんなんでしょうあれ。



ということで、UIViewとかの背景とかをアニメーションでぽわっと変えたいです。

えいや。

#define RGBA(r,g,b,a) [UIColor colorWithRed: r / 255.0f green: g / 255.0f blue: b / 255.0f alpha: a]
[UIView animateWithDuration:0.4 animations:^{
        v.backgroundColor = RGBA(255, 0, 0, 1);
}];

あれれー?

ぽわっとアニメーションでこのViewを赤色に変えようと思ったのに、パッと変わってしまう。



初期値を入力してください。

結論これです。

初期値がnilだとパッと変わってしいます。

v.backgroundColor = RGBA(255, 0, 0, 0);
[UIView animateWithDuration:0.4 animations:^{
        v.backgroundColor = RGBA(255, 0, 0, 1);
}];

透明から赤色にしたいので、赤色の透明からスタートしてください。

[UIColor clearColor]はこの例でいくとRGBA(0,0,0,0)なので、黒と赤の中間色が出てしまいます。



お気をつけくださいましまし。



この記事をシェア
この記事にコメントする
書き込む
あっきぃ(@appstars_aki)
Web、iOSなフリーランサーです。好きなものはお寿司です。でもお寿司は高いので普段は雑草とか拾ったドングリを食べています。お仕事や意味もなく毎月お小遣いをくれる人を探してます。

お仕事の依頼や自分で作ったアプリのレビューを希望しちゃう方はaki@appstars.jpまでご連絡ください。