addsubview 加载view和控件的区别

问题:

  当用addsubview加载控件时,addsubview后就可以release的;但当加载的是view视图时,如果你现在release或者autorelease,当这个加载的view调用removeFromSuperview方法返回时则会出错,如果不release或者autorelease则view返回时不会调用dealloc方法,造成没有释放view里的资源。

 

解决之道:

在调用的removeFromSuperview方法后再调用release即可。

 

如下:

加载view

ShowImageViewController *showImageViewController = [[ShowImageViewController alloc] init];
    showImageViewController.showdelegate = self;
[[self appDelegate].window 

//可以这样在用addsubview跳转界面中使用动画,这个动画是让view加载的时候会用下往上移动
showImageViewController.view.frame = CGRectMake(0, 480, 320, 460);
    [[self appDelegate].window addSubview:showImageViewController.view];
    [UIView animateWithDuration:0.3 animations:^{
        showImageViewController.view.frame = CGRectMake(0, 20, 320, 460);
    }];

view返回

[self.view removeFromSuperview];
[self release];
posted @ 2012-11-23 20:34  天已界  阅读(274)  评论(0编辑  收藏  举报