滑动UIView动画

时间:2014-08-05 06:58:48

标签: ios uiviewanimation

我有一个按钮,在按钮动作中,我想通过从按钮滑动来显示我的UITableView,在单击单元格之后,它应该通过滑动效果来实现。我通过UIViewAnimation设置固定的y位置并更改高度从0到高度

       tableview.hidden=FALSE;
        tableview.frame = CGRectMake(0,myButton.frame.size.height,myButton.frame.size.width, 0);


        [UIView animateWithDuration:AnimationTime animations:^{

              tableview.frame = CGRectMake(tableview.frame.origin.x, tableview.frame.origin.x, tableview.frame.size.width,  200 );


        } completion:^(BOOL finished) {


        }];

但事实并非如此。我想要一个滑动效果。任何帮助都会很明显

2 个答案:

答案 0 :(得分:1)

将此方法用于动画。 Provide a option for animation style. There a lot of option in objective-c for animation style

[UIView animateWithDuration:15.0f delay:0.0f options:UIViewAnimationOptions animations:^{
        tableview.frame = CGRectMake(tableview.frame.origin.x, tableview.frame.origin.x, tableview.frame.size.width,  200 );
    } completion:^(BOOL finished)
     {

     }];

对于你的情况,我认为你应该使用UIViewAnimationOptionTransitionFlipFromTop作为幻灯片表从上到下的动画选项。通过使用它,你的桌面视图在15秒内获得它的全高。你也可以管理它。

修改

单击单元格后,您希望桌面视图以幻灯片效果显示。比使用

[UIView animateWithDuration:2.0f delay:0.0f options:UIViewAnimationOptionTransitionFlipFromBottom animations:^{
            tableview.frame = CGRectMake(tableview.frame.origin.x, tableview.frame.origin.x, tableview.frame.size.width,  0 );
        } completion:^(BOOL finished)
         {

         }];

for slide up animation. 

答案 1 :(得分:0)

问题不是动画,问题是你定义的框架。最简单的方法是定义开放和关闭框架并使用它们进行动画制作。见下文..

Define Open and Close frame

-(void)initComponents{
    CGRect rect=tableView.frame;

    rect.origin=myButton.center;

    openFrame=rect;//Assign openFrame before changing the size.

    rect.size=CGSizeZero;
    tableView.frame=rect;

    closeFrame=rect;//Assign closeFrame
}

调用 initComponents 中的viewDidLoad功能设置tableview的初始状态。现在,只需在您要呼叫的操作上使用以下功能。

-(void)openMenu{
   [UIView animateWithDuration:.3 animations:^{
        tableView.frame=openFrame;
    }];
}

-(void)closeMenu{
   [UIView animateWithDuration:.3 animations:^{
        tableView.frame=closeFrame;
    }];
}

多数民众赞成。它应该工作。

让我知道。欢呼声。