Je veux montrer UIView après avoir appuyé sur un bouton avec une animation, je peux montrer la vue mais je ne parviens pas à la masquer.
sliderView.frame = CGRectMake(130, 20, 0, 0);
[UIView animateWithDuration:0.25 animations:^{
sliderView.frame = CGRectMake(130, 30, 100, 200);
}];
Pour masquer UIView:
[UIView animateWithDuration:0.25 animations:^{
sliderView.frame = CGRectMake(130, 30, 0, 0);
}];
Utiliser la vue de code ci-dessus montre avec animation mais pas cacher .. est-ce que quelqu'un sait comment le cacher, aidez s'il vous plaît, merci
Votre code fonctionne, je l'ai utilisé. Regardez le code ci-dessous
Fichier . h:
#import <UIKit/UIKit.h>
@interface StackoverflowTestViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIView *cautionView;
- (IBAction)btnToggleClick:(id)sender;
@property (strong, nonatomic) IBOutlet UIButton *btnToggle;
@end
. m fichier:
#import "StackoverflowTestViewController.h"
@interface StackoverflowTestViewController ()
@end
@implementation StackoverflowTestViewController
bool isShown = false;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)btnToggleClick:(id)sender {
if (!isShown) {
_cautionView.frame = CGRectMake(130, 20, 0, 0);
[UIView animateWithDuration:0.25 animations:^{
_cautionView.frame = CGRectMake(130, 30, 100, 200);
}];
isShown = true;
} else {
[UIView animateWithDuration:0.25 animations:^{
_cautionView.frame = CGRectMake(130, 30, 0, 0);
}];
isShown = false;
}
}
@end
-(void)fadeInAnimation:(UIView *)aView {
CATransition *transition = [CATransition animation];
transition.type =kCATransitionFade;
transition.duration = 0.5f;
transition.delegate = self;
[aView.layer addAnimation:transition forKey:nil];
}
Add Subview:
[self.view addsubView:mysubview];
[self fadeInAnimation:self.view];
Remove SubView:
[mySubView removefromSuperView];
[self fadeInAnimation:self.view];
Vous pouvez utiliser les propriétés alpha et cachée de UIView pour masquer votre sliderView. Essayez le code suivant:
/*To unhide*/
[sliderView setHidden:NO];
sliderView.frame = CGRectMake(130, 20, 0, 0);
[UIView animateWithDuration:0.25 animations:^{
sliderView.frame = CGRectMake(130, 30, 100, 200);
sliderView.alpha = 1.0f;
} completion:^(BOOL finished) {
}];
/*To hide*/
[UIView animateWithDuration:0.25 animations:^{
sliderView.frame = CGRectMake(130, 30, 0, 0);
[sliderView setAlpha:0.0f];
} completion:^(BOOL finished) {
[sliderView setHidden:YES];
}];
essaye ça
- (IBAction)eventparameter:(id)sender
{
if ([self.parameterview isHidden])
{
[UIView beginAnimations:@"LeftFlip" context:nil];
[UIView setAnimationDuration:0.8];
_parameterview.hidden=NO;
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:_parameterview cache:YES];
[UIView commitAnimations];
}
else
{
[UIView transitionWithView:_parameterview
duration:0.4
options:UIViewAnimationOptionTransitionCurlUp
animations:NULL
completion:NULL];
[self.parameterview setHidden:YES];
}
}
Appliquer le cadre initial/de départ de votre vue est
sliderView.frame = CGRectMake(130, 480, 100, 200);
Donnez l'étiquette de votre bouton comme
myButton.tag = 101;
Et votre méthode de bouton
-(void)MyButonMethod:(UIButton *)sender
{
if(sender.tag == 101)
{
[UIView animateWithDuration:0.25 animations:^{
sliderView.frame = CGRectMake(130, 30, 100, 200);
}];
sender.tag = 102;
}
else
{
[UIView animateWithDuration:0.25 animations:^{
sliderView.frame = CGRectMake(130, 480, 100, 200);
}];
sender.tag = 101;
}
}
Essaye ça:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.25];
[sliderView setFrame:CGRectMake(130, 30, 0, 0)];
[UIView commitAnimations];