Есть ли способ анимировать образ фонового изображения UIButton с набором изображений?Анимация UIButton background image
Мне удалось сделать это с помощью свойства imageView, но не удалось найти эквивалентное свойство фона.
10x
Есть ли способ анимировать образ фонового изображения UIButton с набором изображений?Анимация UIButton background image
Мне удалось сделать это с помощью свойства imageView, но не удалось найти эквивалентное свойство фона.
10x
Чтобы изменить кнопки Backround изображение или текст по этому вопросу - вы должны изменить его для конкретного UIControlState ... т.е. Подчеркнута, Selected, Disabled
Использование
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state
Я не уверен, можете ли вы их оживить, я никогда не пробовал. Если вы не можете их оживить, вы можете поместить UIImageView за прозрачную кнопку и вместо этого оживить образы, а не просто мысль.
Да, это возможно. Используйте NSTimer,
NSTimer * myTimer = [NSTimer scheduleTimerWithTimeInterval: 5,00 target: self selector: @selector (changeImage) userInfo: nil repeatts: 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++;
}
Он работал для меня. Но добавление анимации, например, флип и т. Д., Необходимо выяснить. Надеюсь, это также один из способов помочь вам в этом.
Вы можете анимировать UIButton
, как вы анимировать UIImageView
как это ...
-(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];
Override выделены:
- (void)setHighlighted:(BOOL)highlighted {
[UIView transitionWithView:self duration:0.25 options:UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionAllowAnimatedContent animations:^{
[super setHighlighted:highlighted];
} completion:nil];
}
Это блестящее решение –
Я поставил UIImageView под прозрачной кнопкой. Немного взломанный, но что я могу сказать - это сработало! 10x – Rizon