我有一个应用程序,我有一个识别轻敲手势的IBAction,我想点击使屏幕上的按钮消失,然后一旦点击就重新出现。
- (IBAction)showFullScreen:(UITapGestureRecognizer *)sender {
}
我知道它可能是动画。我有4个按钮,UIImageView就是我需要自己出现的
答案 0 :(得分:4)
你的意思是你希望他们连续运行两个动画?尝试:
[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
的关键帧动画答案 1 :(得分:3)
试试这个:
-(void)showButton {
self.button.hidden = NO;
}
-(IBAction) hidebutton{
[self performSelector:@selector(showButton) withObject:nil
afterDelay:1.5];}
答案 2 :(得分:1)
隐藏 mybutton.hidden = YES; 显示 mybutton.hidden = NO;
答案 3 :(得分:0)
听起来像你有两个步骤:首先点击使按钮消失并出现图像,seocnd tap反转它。由于alpha值是浮点数,并且浮点数对于具有可以使用==进行比较的精确值不是非常可靠,我倾向于使用外部bool属性来跟踪那种事情。 (我实际上并没有看到将它用于alphas的很多问题,所以请随意检查alpha变量)
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;