私はiPhoneアプリケーションを持っています。
ビューがロードされるときにsubViewが含まれるようにしたい。また、アニメーションで左から右にフリップまたはスライドするように、そのサブビューをロードする必要があります。
subViewには、UIButtonとTextViewが含まれています。subViewを左からスライドのようなアニメーションでロードする必要があります。
私はiPhoneアプリケーションを持っています。
ビューがロードされるときにsubViewが含まれるようにしたい。また、アニメーションで左から右にフリップまたはスライドするように、そのサブビューをロードする必要があります。
subViewには、UIButtonとTextViewが含まれています。subViewを左からスライドのようなアニメーションでロードする必要があります。
ビューを反転するには、次のようにします。
[UIView animateWithDuration:1 animation:^{
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.subView cache:FALSE];
}];
ここに私の完全なコードがあります:
- (void) flipCard {
if (_isDisplayBackOfCard) {
[UIView animateWithDuration:.5 animations:^{
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:FALSE];
[self.backOfCard removeFromSuperview];
[self.view addSubview:self.frontOfCard];
} completion:^(BOOL finished){
_isDisplayBackOfCard = !_isDisplayBackOfCard;
}];
}
else {
[UIView animateWithDuration:.5 animations:^{
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:FALSE];
[self.frontOfCard removeFromSuperview];
[self.view addSubview:self.backOfCard];
} completion:^(BOOL finished){
_isDisplayBackOfCard = !_isDisplayBackOfCard;
}];
}
}
アニメーション ブロック内にビュー フレームを設定することで、ビューをスライドさせて簡単に実現できます。
CGRect _newFrame = CGRectMake(someValueForX, someValueForY, someValueForWidth, someValueForHeight);
[UIView animateWithDuration:.5 animations:^{ [self.subView setFrame:_newFrame];}];
わかった。サブビュー(コンテナビューではありません-質問から予測しました!)をスライドアニメーションで追加するには、次の手順に従います-
IBOutlet
ボタンとテキストビュー用に作成synethesize
それらは.mファイルにあります。次のコードを書きます -
- (void)viewWillAppear:(BOOL)animated
{
self.btn.center = CGPointMake(-430.0, 211.0);
self.txtView.center = CGPointMake(-430.0, 120.0);
[self addSubview:self.btn andMoveTo:CGPointMake(115.0, 211.0) duration:1.0 option:UIViewAnimationOptionCurveLinear];
[self addSubview:self.txtView andMoveTo:CGPointMake(40.0, 34.0) duration:1.0 option:UIViewAnimationOptionCurveLinear];
}
- (void) addSubview:(UIView*)view
andMoveTo:(CGPoint)destination
duration:(float)secs
option:(UIViewAnimationOptions)option
{
[UIView animateWithDuration:secs delay:0.0 options:option
animations:^{
view.frame = CGRectMake(destination.x,destination.y, view.frame.size.width, view.frame.size.height);
}completion:nil];
[self.view addSubview:view];
}
viewDidLoad
ビューのメソッドにsubViewを追加することでこれを行うことができ、メソッドでviewDidAppear
はブロックステートメントを使用してアニメーションを使用してアニメーションを与えることができます。
ハッピーコーディング:)
編集1
ここでは、XIB に scrollView を追加し、そこにアタッチIBOutlate
します。プログラムでviewDidLoad
メソッドに追加できます。
最初に、このフレームを適用してビューを非表示にします
subCatScroll.frame = CGRectMake(320, 0, 91, 436);
ボタンをクリックすると、アニメーションで表示されます(iPhoneの右側の端から来ています)
- (IBAction)done:(id)sender
{
[Appirater userDidSignificantEvent:YES];
if(pointer.hidden == YES)
{
[UIView beginAnimations:@"Move Me To Unhide" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:kAnimationDur];
subCatScroll.frame = CGRectMake(229,0,91,436);
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
[self configureView];
pointer.hidden = NO;
}
else
{
[UIView beginAnimations:@"Move Me To Hide" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:kAnimationDur];
subCatScroll.frame = CGRectMake(320, 0, 91, 436);
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
pointer.hidden = YES;
}
}
これは、 scrollViewpointer
で何をするかを決定するために使用される 1 つのコントロールです。