Анимировать включение UIBarButtonItem? - PullRequest
2 голосов
/ 18 ноября 2009

Есть ли способ анимировать включение или отключение кнопки? Я попробовал следующее безуспешно. На данный момент я предполагаю, что свойство enabled не может быть анимировано, как непрозрачность, но я надеюсь, что ошибаюсь.

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1.0f];
    theButton.enabled = YES;
    [UIView setAnimationDelegate:self];
    [UIView commitAnimations];

Не могу поверить, что нет setEnabled:(BOOL)enabled animated:(BOOL)animated метода.

Ответы [ 5 ]

3 голосов
/ 04 апреля 2015

Это на самом деле очень просто. UIView.transitionWithView может сделать снимок любого вида и перекрестно раствориться из снимка в новое состояние представления. Вы можете использовать эту возможность для анимации множества изменений, включая enabled.

Просто используйте представление View Controller в качестве целевого представления, укажите TransitionCrossDissolve, затем анимируйте, как обычно.

UIView.transitionWithView(self.view,
    duration: 0.5,
    options: UIViewAnimationOptions.TransitionCrossDissolve,
    animations: { () -> Void in
        self.someButton.enabled = !self.someButton.enabled
}, completion:nil)
1 голос
/ 11 апреля 2010

Свойства анимации (через UIView beginAnimations: context :): рамка, границы, центр, преобразование, альфа (из документов Apple).

Таким образом, вы должны определить, что именно является вашей анимацией (с точки зрения цветовой / альфа-анимации / анимации преобразования) и создать ручную анимацию (возможно, вам придется использовать CAAnimation вместо UIView beginAnimations: context:)

0 голосов
/ 04 февраля 2011

Set: self.buttonSetEvent.customView.alpha = 0.2;

и попробуйте это

    CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:0.15];
[UIView setAnimationRepeatCount:2];
[UIView setAnimationRepeatAutoreverses:YES];

self.buttonSetEvent.customView.alpha = 1;

[UIView setAnimationDelegate:self];
[UIView commitAnimations];
0 голосов
/ 18 ноября 2009

Вот идея:)

В вашем анимационном блоке удалите кнопку из вида и добавьте ее снова с отключенным состоянием. Здесь вы можете указать, какую анимацию вы хотите ..

0 голосов
/ 18 ноября 2009

Вы можете разбить включение / отключение кнопки на изменение непрозрачности между двумя перекрывающимися изображениями, каждое из которых находится в одном состоянии или в другом (то есть, чтобы оно выглядело как постепенное исчезновение / постепенное исчезновение). В обработчике завершения анимации вы можете сделать фактическое переключение включения / выключения.

...