2015-07-01 3 views
1

Я добавляю вид, когда btw нажимается слева направо и вы хотите удалить это представление справа налево.удалить вид слева направо с помощью анимации

Ниже мой код, добавляя вид слева направо

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" 
                 bundle: nil]; 

leftMenu = (LeftMenuViewController*)[mainStoryboard 
                  instantiateViewControllerWithIdentifier: @"menuController"]; 



leftMenu.view.frame = CGRectMake(-320, 0, 320-50, self.view.frame.size.height); 


[self addChildViewController:leftMenu]; 
[self.view addSubview:leftMenu.view]; 

[UIView animateWithDuration:0.3 animations:^{ 

    leftMenu.view.frame = CGRectMake(0, 0, 320-50, self.view.frame.size.height); 
    hoverView.hidden = NO; 


} completion:^(BOOL finished) { 
    [leftMenu didMoveToParentViewController:self]; 
}]; 

Для удаления этого взгляда справа налево, что я попробовал это:

self.view.frame = CGRectMake(320-50, 0, self.view.frame.size.width, self.view.frame.size.height); 
[self willMoveToParentViewController:nil]; 


[UIView animateWithDuration:0.3 animations:^{ 

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



} completion:^(BOOL finished) { 

    [self removeFromParentViewController]; 
    [self.view removeFromSuperview]; 

}]; 

Я хочу, чтобы удалить вид из права налево. Любая помощь в продолжении?

+0

А в чем проблема с вашей второй фрагмент кода? – Doro

ответ

2

Вы должны перенести свой подвью из кадра супервизора, поэтому установите x-координату вашего поднабора на отрицательное значение собственной ширины. Это приведет к тому, что ваше представление будет перемещаться справа налево вне поля зрения.

[self willMoveToParentViewController:nil]; 

    [UIView animateWithDuration:0.3 animations:^{ 

     self.view.frame = CGRectMake(-self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height); 
    } completion:^(BOOL finished) { 

     [self removeFromParentViewController]; 
     [self.view removeFromSuperview]; 

    }]; 
+0

@ Doro Спасибо .. отлично работаю. – user2931321

+0

приветствуется :) – Doro

+0

@ Doro выше код изменен на swift 3.0, но не работает..А всякая помощь? – user2931321

0

Вы можете удалить его, как это:

CGRect napkinBottomFrame = Yourview.frame; 
napkinBottomFrame.origin.x = 0; 
[UIView animateWithDuration:0.3 delay:0.0 options: UIViewAnimationOptionCurveEaseOut animations:^{ Yourview.frame = napkinBottomFrame; } completion:^(BOOL finished){/*done*/}]; 
Смежные вопросы