Вот код.
NSArray *images = [NSArray arrayWithObjects:
[UIImage imageNamed:@"image0.png"],
[UIImage imageNamed:@"image1.png"],
nil];
imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image0.png"]];
imageView.animationImages = images;
UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
button.bounds = self.imageView.bounds;
[button addSubview:self.imageView];
[button addTarget:self action:@selector(buttonTouched:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem * barButton = [[[UIBarButtonItem alloc] initWithCustomView: button] autorelease];
Некоторые вещи, на которые следует обратить внимание:
UIButton
имеет нулевую область, так как не имеет границ, установленных при инициализации, таким образом, границыинициализируются границами UIImageView
(у которого его границы инициализированы из изображения).
UIButton
обрабатывает действие / цель для события касания.Действие / цель UIBarButtonItem
не установлены.
Для анимации:
[imageView startAnimating];