2009-08-31 48 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)]