More than 5 years have passed since last update.

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

Last updated at Posted at 2013-01-08

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;

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up