0

私はiPhoneアプリケーションを持っています。

ビューがロードされるときにsubViewが含まれるようにしたい。また、アニメーションで左から右にフリップまたはスライドするように、そのサブビューをロードする必要があります。

subViewには、UIButtonとTextViewが含まれています。subViewを左からスライドのようなアニメーションでロードする必要があります。

4

3 に答える 3

1

ビューを反転するには、次のようにします。

    [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];}];
于 2012-08-07T07:20:49.963 に答える
0

わかった。サブビュー(コンテナビューではありません-質問から予測しました!)をスライドアニメーションで追加するには、次の手順に従います-

  1. IBOutletボタンとテキストビュー用に作成
  2. synethesizeそれらは.mファイルにあります。
  3. 次のコードを書きます -

        - (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];
    
    }
    
于 2012-08-07T08:46:57.157 に答える
0

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 つのコントロールです。

于 2012-08-07T07:20:00.270 に答える