2009-08-31 51 views
0

你好我所有使用此代碼來顯示翻轉動畫......我有一個uview與滾動視圖(分頁啓用)...所以它顯示了一個像頁面一樣的視圖...現在我也做了翻轉動畫使用此代碼....從uiscrollview中刪除每個類型的子視圖?

-(void)flipView 
{ 
    flashCardAnswerController *flashCardAnswerControllerobj = [[flashCardAnswerController alloc] initWithNibName:@"FlashCardAnswerView" bundle:[NSBundle mainBundle]]; 
[flashCardAnswerControllerobj.view setFrame:[[self view] frame]]; 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.60];// Sub. duration 
UIView *superview; 
    if ((superview = [[self view] superview])) { 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:superview cache:YES]; 
    [superview addSubview:[flashCardAnswerControllerobj view]]; 
} 
[UIView commitAnimations]; 
} 

所以要根據代碼的新視圖將被添加到scrollview..i還可以管理而翻轉回發佈新的觀點......但如果我直接按後退按鈕在導航控制器上...翻轉側視圖不會釋放。我想這在我的scrolleview的類的dealloc方法,但它不工作

for(UIView *subview in [scrollView subviews]) { 
     [subview removeFromSuperview]; 
} 

我如何刪除奇差的觀點意見在數量非常多......約。 48加48翻轉側視圖所以definietly它會在設備上創建內存問題...

也可以有人告訴我一種方法來禁用NavigationBar的後視圖在翻轉側的視圖...沒有創建模仿類的對象。

回答

1

我沒有直接回答你的問題,但我可以告訴你這是舊的iPhone OS 2.x顯示視圖翻轉方式。

在iPhone OS 3.0中,您應該使用presentModalViewController:animated:代替。這是更少的代碼,你在問題中描述的所有問題都會消失。

這個想法是,當前視圖的另一面,由模塊顯示的單獨的UIViewController管理。但除了2.0以來的滑動動畫之外,您還可以通過水平翻轉使新的視圖控制器進出動畫。

self.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentModalViewController:flipSideController 
         animated:YES]; 
+0

是的,我有2.X os.tell我如何釋放反面的觀點...... – 2009-08-31 15:03:51

+0

你應該非常,非常仔細地問自己;會不會安裝iPhone OS 3.0的用戶打擾安裝我的應用程序? 萬一答案是肯定的,進一步將視圖層次結構中的副視圖子視圖添加到超級視圖,可能作爲UIWindow實例的子視圖。這樣導航欄不再存在,後退按鈕也沒有問題。要求用戶翻轉頁面,在進入下一個頁面前不會出現問題,請參閱天氣。 此外,你永遠不需要在dealloc方法中釋放子視圖,UIView中的默認實現已經爲你做到了。 – PeyloW 2009-08-31 17:03:27

+0

在窗口中添加不工作...是否有一種方法,我可以找出如果scrollView具有類FlipSide的子視圖,我可以釋放,如果ScrollView具有翻轉側視圖 – 2009-09-01 10:40:16

0
[[scrollView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)]