UIButtonの背景イメージビューに一連のイメージをアニメーション表示する方法はありますか?UIButtonの背景イメージをアニメーション化する
私はimageViewプロパティでそれを行うことができましたが、同等の背景プロパティは見つかりませんでした。
10倍
UIButtonの背景イメージビューに一連のイメージをアニメーション表示する方法はありますか?UIButtonの背景イメージをアニメーション化する
私はimageViewプロパティでそれを行うことができましたが、同等の背景プロパティは見つかりませんでした。
10倍
画像、またはそのことについては、テキストをbackroundのボタンを変更するには - あなたは、特定のUIControlStateのためにそれを変更する必要があります...つまりハイライトされ、選択された、障害者
使用
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state
アニメーション化できるかどうかはわかりませんが、試したことはありません。それらをアニメートできない場合は、UIImageViewを透明なボタンの背後に置き、その代わりにイメージをアニメーション化することができます。
はい可能です。使用NSTimer、
NSTimer * myTimer = [NSTimer scheduledTimerWithTimeInterval:5.00ターゲット:自己セレクタ:@selector(changeImage)ユーザー情報:リピートゼロ:YES]。
次のように、この方法は、それは私のために働いた、
- (void)changeImage
{
static int counter = 0;
if([bannerArray count] == counter)
{
counter = 0;
}
[button setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:bannerArray[counter]]]] forState:UIControlStateNormal];
counter++;
}
です。しかし、フリップなどのアニメーションを追加するには、把握する必要があります。あなたの必要性を助けるための一つの方法でもありますように。
あなたはこのようなUIImageView
をアニメーションUIButton
方法をアニメーション化することができます...
-(void) addAnimationToButton:(UIButton*) button{
UIImageView* animationView = [button imageView];
NSArray* animations=[NSArray arrayWithObjects:
[UIImage imageNamed:@"sprite1.png"],
[UIImage imageNamed:@"sprite2.png"],
[UIImage imageNamed:@"sprite2.png"],
//and so on if you need more
nil];
CGFloat animationDuration = 2.0;
[animationView setAnimationImages:animations];
[animationView setAnimationDuration:animationDuration];
[animationView setAnimationRepeatCount:0]; //0 is infinite
}
そして、あなたはこのようにそれを使用します。
[self addAnimationToButton:yourButton];
[[yourButton imageView] startAnimating]; //or stopAnimating
ここで(UIButtonのサブクラス内で私がやったことです)。
[self setBackgroundImage:[[UIImage imageNamed:@"button"] resizableImageWithCapInsets:UIEdgeInsetsMake(10.0, 10.0, 10.0, 10.0)] forState:UIControlStateNormal];
[self setBackgroundImage:[[UIImage imageNamed:@"button_pressed"] resizableImageWithCapInsets:UIEdgeInsetsMake(10.0, 10.0, 10.0, 10.0)] forState:UIControlStateHighlighted];
オーバーライドが強調表示:
- (void)setHighlighted:(BOOL)highlighted {
[UIView transitionWithView:self duration:0.25 options:UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionAllowAnimatedContent animations:^{
[super setHighlighted:highlighted];
} completion:nil];
}
これはすばらしい解決策です –
を私は透明ボタンの後ろにUIImageViewを入れています。ちょっとハッキーですが、何が言えるのですか? 10x – Rizon