Ios 关闭子视图时如何设置计时器

Ios 关闭子视图时如何设置计时器,ios,objective-c,uiview,uiviewanimation,handshake,Ios,Objective C,Uiview,Uiviewanimation,Handshake,我试图打开两个子视图,并在此时关闭,所以我尝试这样做 - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event { if(event.type == UIEventSubtypeMotionShake) { [self shakeView]; //[self open]; } } -(void)shakeView { [UIView animateW

我试图打开两个子视图,并在此时关闭,所以我尝试这样做

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
    if(event.type == UIEventSubtypeMotionShake)
    {
        [self shakeView];
        //[self open];
    }
}

-(void)shakeView
{
    [UIView animateWithDuration:2.8
                     animations:^{
                         //OPEN
                         firstView.frame = CGRectMake(0, -40, self.view.frame.size.width, self.view.frame.size.height/2);
                         secondView.frame = CGRectMake(0, 260, self.view.frame.size.width, self.view.frame.size.height/2);

                         // Its final location
                     }
                     completion:^(BOOL finished) {
                         // Closed 
                         firstView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height/2);
                         secondView.frame = CGRectMake(0,230 , self.view.frame.size.width, self.view.frame.size.height/2);
                     }
    ];
}
我需要两个视图更改的位置,然后到达相同的位置,但当我调用这两个方法时,打开速度很慢,但关闭速度很快

所以请任何人帮我,如何设置定时器时关闭视图

提前谢谢

你的结束部分

firstView.frame=CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height/2);

secondView.frame=CGRectMake(0,230 , self.view.frame.size.width, self.view.frame.size.height/2);
不在动画块内。打开的持续时间为2.8秒,但关闭将在没有任何持续时间的情况下执行

将结束部分放在另一个动画块中

[UIView animateWithDuration:0.4 animations:^{
    firstView.frame=CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height/2);

    secondView.frame=CGRectMake(0,230 , self.view.frame.size.width, self.view.frame.size.height/2);
     }completion:^(BOOL finished){
     }];
希望这有帮助:)

试试这个

-(void)shakeView
{
[UIView animateWithDuration:2.8
                 animations:^{
                     //OPEN
                     firstView.frame =CGRectMake(0, -40, self.view.frame.size.width, self.view.frame.size.height/2);
                     secondView.frame =CGRectMake(0, 260, self.view.frame.size.width, self.view.frame.size.height/2);
                     // its final location
                 }
                 completion:^(BOOL finished)
 {
     //Closed

     [UIView animateWithDuration:0.5 animations:^{

         firstView.frame=CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height/2);
         secondView.frame=CGRectMake(0,230 , self.view.frame.size.width, self.view.frame.size.height/2);
     }];

 }];}

谢谢回复,请告诉我如何设置定时器关闭部分duration@user3678584>将关闭部分放置在动画块中。