用动画显示和隐藏UITableView

时间:2014-11-04 11:03:58

标签: ios objective-c xcode uitableview animation

我试图显示和隐藏带动画的tableView"从左到右过渡&从右到左"

这就是我已经厌倦了它但是在使用CGRectMake中的随机值之后

有人可以帮我修好吗

    -(void)Display:(UITableView *)tableView :(UIView *)view{
         tableView.alpha=1;
        [UIView animateWithDuration:0.35
                         animations:^{
                                 tableView.frame = CGRectMake(-209, 440, 180, 209);

                         }
                         completion:^(BOOL finished){

                             [tableView setHidden:YES];

                         }
         ];
    }

-(void)Hide:(UITableView *)tableView :(UIView *)view :(int )tb{
    tableView.alpha=1;
    [tableView setHidden:NO];

    [UIView animateWithDuration:.45
                     animations:^{
                          tableView.frame = CGRectMake(3, 442, 180, 209);

                     }
     ];
}

3 个答案:

答案 0 :(得分:1)

您可以使用此代码:

[UIView transitionFromView:firstView
                    toView:secondView//table view
                  duration:0.5
                   options:UIViewAnimationOptionTransitionFlipFromLeft
                completion:^(BOOL finished) {

                    [firstView.superView addSubview:secondView];

                    [firstView.superView sendSubviewToBack:firstView];
                }];

答案 1 :(得分:1)

很难从你的问题中分辨出来,但是从左到右过渡&从右到左" 你想要这样的东西......?

用于动画左侧

    [UIView animateWithDuration:1.0f
                          delay:0.0f
                        options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut
                     animations:^{


                         self.tableView.frame = CGRectMake(0.0f, -self.tableView.frame.size.width, self.tableView.frame.size.width, self.tableView.frame.size.height);

                     }
                     completion:NULL];

用于制作正确的动画

    [UIView animateWithDuration:1.0f
                          delay:0.0f
                        options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut
                     animations:^{


                         self.tableView.frame = CGRectMake(0.0f, self.view.bounds.size.width, self.tableView.frame.size.width, self.tableView.frame.size.height);

                     }
                     completion:NULL];

用于动画

    [UIView animateWithDuration:1.0f
                          delay:0.0f
                        options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut
                     animations:^{


                         self.tableView.frame = CGRectMake(0.0f, 0.0f, self.tableView.frame.size.width, self.tableView.frame.size.height);

                     }
                     completion:NULL];

您可以在完成块中放置表重新加载等吗?然后将tableView动画回来?

答案 2 :(得分:0)

如果您想要像Facebook这样的动画,请使用: - ECSlidingViewController

http://kingscocoa.com/tutorials/slide-out-navigation/

如果你想要普通的动画,那么设置帧并将alpha从1.0减少到0.0持续时间。