Как удалить анимацию UIBarButtonItem tintColor на iOS?

У меня есть анимация BarButtonItem здесь:

[UIView animateWithDuration:AnimDurationTintColorHint delay:0 options:UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse animations:^{
    [view performSelector:@selector(setTintColor:) withObject:UIColor.blackColor];
} completion:^(BOOL finished) {
  ........
}];

поскольку UIBarButtonItem не имеет свойства слоя, я не могу использовать.layer removeAllAnimations, чтобы остановить назначенную бесконечную анимацию.

Как это убрать?

1 ответ

Вы должны взять leftBarButtonItem или rightBarButtonItem, а затем установить для включенного свойства UIBarButtonItem значение NO.

UIImage *img = [UIImage imageNamed:@"your image"];
    UIButton *btnMenu = [UIButton buttonWithType:UIButtonTypeCustom];
    btnMenu.frame = CGRectMake( 10, 0, img.size.width, img.size.height);
    [btnMenu addTarget:self action:@selector(handleBack:) forControlEvents:UIControlEventTouchUpInside];
    [btnMenu setImage:img forState:UIControlStateNormal];
    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:btnMenu];
    self.navigationItem.leftBarButtonItem = backButton;
self.navigationItem.leftBarButtonItem.enabled = NO;
Другие вопросы по тегам