2015-03-25 21 views
0

當點擊一個按鈕時,我顯示一個UIView並且它動畫並向上滑動。如何用動畫關閉UIView

現在,當我點擊按鈕時,方法buttoncall被調用。 我想用動畫關閉(向下/關閉)視圖。 我該怎麼做?

v = [[MyView alloc] initWithFrame:mycell.bounds]; 

    [v.flipLowButton addTarget:self action:@selector(buttoncall:) forControlEvents:UIControlEventTouchUpInside]; 

    [mycell addSubview:v]; 

    CGRect r=v.frame; 

    r.origin.y= mycell.frame.size.height; 

    v.frame=r; 

    rect.origin.y=r.origin.y-r.size.height; 

    [UIView animateWithDuration:.2 animations:^{ 

    v.frame=r; }]; 


- (void) buttoncall:(UIButton *)sender { 

    // How to bring down the menu. 

} 
+1

只是做相反的,你做了什麼來顯示菜單。 – rmaddy 2015-03-25 04:00:18

回答

0

只需將視線向下移動即可。 例如:如果視圖從底部顯示爲100px,則只需將視圖偏移+ 100px即可獲得解除效果。

[UIView animateWithDuration:.2 animations:^{ 

    [v setFrame:CGRectOffset(v.frame, 0, CGRectGetHeight(v.bounds))];  
}]; 
0

你可以使用你已經擁有相同的動畫代碼:

[UIView animateWithDuration:.2 animations:^{ 
    v.frame=r;  
}]; 

只需設置v.frame到新的(或原始的)目標。

+0

動畫是從下到上。而不是從上到下 – Illep 2015-03-25 04:13:07

0

yourView.frame = CGRectMake(yourView.frame.origin.x,yourView.frame.origin.y,yourView.frame.size.width,yourView.frame.size.height);

[UIView的animateWithDuration:1.0動畫:^ {

yourView.frame = CGRectMake(yourView.frame.origin.x,yourView.frame.origin.y + yourView.frame.size.height,yourView.frame .size.width,yourView.frame.size.height);

}];