Получение кнопок исчезать и Reapper - PullRequest
1 голос
/ 29 марта 2012

У меня есть приложение, где у меня есть IBAction, который распознает жест касания, и я хочу, чтобы касание заставляло кнопки на экране исчезать, а затем снова появляться после нажатия.

- (IBAction)showFullScreen:(UITapGestureRecognizer *)sender {








}

Я знаю, что это, вероятно, анимация.У меня есть 4 кнопки, и UIImageView - это то, что мне нужно, чтобы он появился сам по себе

Ответы [ 4 ]

4 голосов
/ 29 марта 2012

Вы хотите сказать, что хотите, чтобы они запускали две анимации подряд?Попробуйте:

[UIView animateWithDuration:1 animations:^{
    view1.layer.opacity = 0;
    view2.layer.opacity = 0;
} completion:^(BOOL finished){
    [UIView animateWithDuration:1 animations:^{
        view1.layer.opacity = 1;
        view2.layer.opactiy = 1;
    }];
}];

Вам потребуется включить coregraphics для доступа к свойству слоя.

#import <QuartzCore/QuartzCore.h>

Другой вариант - использовать анимацию ключевого кадра с CAKeyframeAnimation

3 голосов
/ 30 марта 2012

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

-(void)showButton {
self.button.hidden = NO;
}


-(IBAction) hidebutton{    
[self performSelector:@selector(showButton) withObject:nil
afterDelay:1.5];}
1 голос
/ 29 марта 2012

скрыть mybutton.hidden = ДА; показывать mybutton.hidden = НЕТ;

0 голосов
/ 29 марта 2012

Звучит так, будто у вас есть два шага: первое нажатие приводит к исчезновению кнопок и появлению изображения, а второе нажатие обращает его вспять. Поскольку альфа-значения являются числами с плавающей точкой, а значения с плавающей точкой не очень надежны в отношении точных значений, которые вы можете использовать для сравнения ==, я предпочитаю использовать внешнее свойство bool для отслеживания подобных вещей. (На самом деле я не видел много проблем с его использованием для альфа-версий, поэтому просто проверяйте альфа-переменные)

if(buttonsShowing)//(button1.view.opacity==1)
{
    [UIView animateWithDuration:1 animations:^{
        button1.view.opacity = 0;
        button2.view.opacity = 0;
        button3.view.opacity = 0;
        imageView.opacity = 1;
    }];
}
}
else
{
    [UIView animateWithDuration:1 animations:^{
        button1.view.opacity = 1;
        button2.view.opacity = 1;
        button3.view.opacity = 1;
        imageView.opacity = 0;
    }];
}
buttonsShowing=!buttonsShowing;
...