Có cách nào để tạo hoạt ảnh cho chế độ xem hình ảnh nền UIButton với một bộ hình ảnh không?Hình nền hoạt hình UIButton
Tôi đã quản lý để làm như vậy với thuộc tính imageView, nhưng không thể tìm thấy thuộc tính nền tương đương.
10x
Có cách nào để tạo hoạt ảnh cho chế độ xem hình ảnh nền UIButton với một bộ hình ảnh không?Hình nền hoạt hình UIButton
Tôi đã quản lý để làm như vậy với thuộc tính imageView, nhưng không thể tìm thấy thuộc tính nền tương đương.
10x
Để thay đổi một nút backround hình ảnh, hoặc văn bản cho rằng vấn đề - bạn cần phải thay đổi nó cho UIControlState đặc biệt ... tức là Tóc Highlight, chọn, Disabled
Sử dụng
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state
Tôi không chắc chắn liệu bạn có thể tạo ảnh động cho họ hay không, tôi chưa bao giờ thử. Nếu bạn không thể tạo ảnh động cho họ, thì bạn có thể đặt một UIImageView sau một nút trong suốt và làm động các hình ảnh trong đó thay thế - chỉ là một ý nghĩ.
Có thể thực hiện được. Sử dụng NSTimer,
NSTimer * myTimer = [NSTimer được lập lịchTimerWithTimeInterval: 5.00 đích: tự chọn: @selector (changeImage) userInfo: nil repeats: YES];
sau đó, phương pháp là như sau,
- (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++;
}
Nó làm việc cho tôi. Nhưng thêm hoạt hình như lật vv cần phải tìm ra. Hy vọng điều này cũng là một cách để giúp bạn.
Bạn có thể làm động một UIButton
theo cách bạn làm động một UIImageView
như thế này ...
-(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
}
Và bạn sử dụng nó như thế này:
[self addAnimationToButton:yourButton];
[[yourButton imageView] startAnimating]; //or stopAnimating
Đây là những gì tôi đã làm (bên trong một lớp con UIButton):
Đặt hình ảnh nút, như thường lệ:
[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 nhấn mạnh:
- (void)setHighlighted:(BOOL)highlighted {
[UIView transitionWithView:self duration:0.25 options:UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionAllowAnimatedContent animations:^{
[super setHighlighted:highlighted];
} completion:nil];
}
Đây là một giải pháp tuyệt vời –
Tôi đã đặt một UIImageView đằng sau một nút trong suốt. Một chút hacky, nhưng những gì tôi có thể nói - đó là làm việc! 10x – Rizon