21
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Organization

UIButton のアイコン部分だけをアニメーションさせる

UIButton は背景とアイコンを別に画像指定出来るので、アイコンにあたる UIImageView の transform を使ってアイコン部分だけをアニメーションさせる、ということができる。
例えば、カメラの撮影ボタンの中身だけを画面回転に合わせて動かしたい時などに使える。

UIButton *btn;
[btn setImage:icon forState:UIControlStateNormal]; // アイコン
[btn setBackgroundImage:bg forState:UIControlStateNormal]; // 背景

// 追記: この行を UIViewAnimation で括るとアニメーションになる --
btn.imageView.transform = transform; // CGAffineTransform
// --

ただ、これだけだと transform 適用時にうまく描画されないことがあるので、以下2行を追加する:

btn.imageView.clipsToBounds = NO;
btn.imageView.contentMode = UIViewContentModeCenter;
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
21
Help us understand the problem. What are the problem?