1

私のアプリにはスクロールビューがあり、ボタンを押すと非表示になり、もう一度押すと表示されます。

scrollview.hidden = YESはそれを行うために使用します(またはNO)。

でもアニメーションでやりたいです。たとえば、移動すると画面の下部から消えて、同じように表示される場合があります。どうやってやるの?

編集:

[UIView beginAnimations:@"myAnimation" context:nil];
CGRect Frame = bottomScroller.frame;
if(Frame.origin.y == 380){
    Frame.origin.y = 460;
}else{
    Frame.origin.y = 380;
}
bottomScroller.frame = Frame;
[UIView commitAnimations];

これで私の問題は解決しました...

4

4 に答える 4

5

UIView animationsを確認できます。とても簡単です。たとえば、翻訳をアニメーション化するには、次のようなものを使用できます。

[UIView beginAnimations:@"myAnimation" context:nil];
CGRect Frame = yourView.frame;
Frame.origin.y = 0;
yourView.frame = Frame;
[UIView commitAnimations];

次に、元に戻すには:

[UIView beginAnimations:@"myAnimation" context:nil];
CGRect Frame = yourView.frame;
Frame.origin.y = 100;
yourView.frame = Frame;
[UIView commitAnimations];

フレーム、アルファ、およびその他のパラメータの変更は、自動的にアニメーション化されます。

于 2012-08-13T12:50:41.810 に答える
3

次のようなアニメーションを使用できます:-

[UIView animateWithDuration:2.0 animations:^{
     [scrollview setframe:CGRectMake(xpos, ypos, width, height)];
}];

スクロールビューを画面上または画面外にスライドさせたい場合は、その y 位置を設定します。ビューの下部を非表示にし、表示する場合は通常の y 位置を設定します。

2.0 はアニメーションの長さです。これは必要に応じて変更できます。

于 2012-08-13T12:51:04.780 に答える
1

これは、単純なビュー アニメーションを使用して行うことができます。これを行う方法の例を次に示します。

// myScrollView is your scroll view

-(void)toggleShow{
    CGFloat targetAlpha = myScrollView.alpha == 1 ? 0 : 1;
    CGFloat yPosition = targetAlpha == 1 ? 0 : self.view.frame.size.height;

    [UIView animateWithDuration:1.0 animations:^{
        myScrollView.frame = CGRectMake(myScrollView.frame.origin.x, yPosition, myScrollView.frame.size.width, myScrollView.frame.size.height);
        myScrollView.alpha = targetAlpha;
    }];
}

targetAlpha常に現在の状態の反対 (1 または 0) になり、0 の場合、y 位置は親ビューの下部に設定されます。ブロックで新しい学校のUIViewアニメーション API を使用すると、これらの変更をスクロール ビューに 1 秒で実行できます (私の例では)。

于 2012-08-13T12:54:12.697 に答える
1

ScrollViewは画面の下からアニメーションで表示されます。このアップアニメーションはあなたが望むものだと思います。

// ScrollView appearing animation
- (void)ScrollViewUpAnimation
{
    // put the scroll view out of screen
    CGRect frame = ScrollView.frame;
    [self.view addSubview:ScrollView];
    ScrollView.frame = CGRectMake(0, 460, frame.size.width, frame.size.height);

    // setting for animation
    CGPoint fromPt = ScrollView.layer.position;
    CGPoint toPt = CGPointMake(fromPt.x, fromPt.y - frame.size.height - 44);
    CABasicAnimation* anime =
    [CABasicAnimation animationWithKeyPath:@"position"];
    anime.duration = 0.2;
    anime.fromValue = [NSValue valueWithCGPoint:fromPt];
    anime.toValue = [NSValue valueWithCGPoint:toPt];

    // change the position of Scroll View when animation start
    [ScrollView.layer addAnimation:anime forKey:@"animatePosition"];
    ScrollView.layer.position = toPt;
}
于 2012-08-13T12:57:19.557 に答える