如何在iOS中发布子视图

问题描述:

这是添加子视图的代码,我希望在添加子视图之前对其进行检查。如何在iOS中发布子视图

numberOfViews = [[GlobalVariable sharedInstance].itemNewsDetail count]; 


for (int i = 0; i < numberOfViews; i++) { 
    @try{ 
     CGFloat xOrigin = i * 320; 
     CGRect frame; 
     frame.size = CGSizeMake(320, 365); 
     frame.origin.x = xOrigin; 
     frame.origin.y = 0; 

     detailVC = [[DetailScrollVC alloc]initWithNibName:@"DetailScrollVC" bundle:nil]; 
     detailVC.view.frame = frame; 
     [detailVC loadViewByIndex:i]; 

     UIFont *font = detailVC.txtBodyNews.font; 
     detailVC.txtBodyNews.font = [font fontWithSize:currentFontSize]; 
     detailVC.txtBodyNews.tag = i; 

     [scrollDetail addSubview:detailVC.view]; 
     [scrollDetail sizeToFit]; 
     [detailVC.view release]; 
    }@catch (NSException *exception) { 
     NSLog(@"ERROR HANDLING : %@",exception); 
    } 
} 

如何检查并发布之前已经添加的所有子视图。

谢谢。

如果你想从你的滚动型或大于试试这个代码的任何其他视图中移除子视图:

numberOfViews = [[GlobalVariable sharedInstance].itemNewsDetail count]; 

for (UIView *subviewElement in scrollDetail.subviews) 
{ 
    [subviewElement removeFromSuperview]; 
} 

for (int i = 0; i < numberOfViews; i++) 
{ 
    @try 
    { 
     CGFloat xOrigin = i * 320; 
     CGRect frame; 
     frame.size = CGSizeMake(320, 365); 
     frame.origin.x = xOrigin; 
     frame.origin.y = 0; 

     detailVC = [[DetailScrollVC alloc]initWithNibName:@"DetailScrollVC" bundle:nil]; 
     detailVC.view.frame = frame; 
     [detailVC loadViewByIndex:i]; 

     UIFont *font = detailVC.txtBodyNews.font; 
     detailVC.txtBodyNews.font = [font fontWithSize:currentFontSize]; 
     detailVC.txtBodyNews.tag = i; 

     [scrollDetail addSubview:detailVC.view]; 
     [scrollDetail sizeToFit]; 
     [detailVC release]; 
    } 
    @catch (NSException *exception) { 
     NSLog(@"ERROR HANDLING : %@",exception); 
    } 
} 

我希望它可以帮助你更好的理解。谢谢

+0

感谢您的帮助@chandan .. 但我的应用程序仍然强制与另一个错误关闭.. lldb。 您对此有何看法? – Template09 2013-05-10 07:18:40

尝试这样,

for (UIView *vie in self.view.subviews) 
    { 
     if([vie isKindOfClass:[UIImage class]])//here place your object class name for removeing that particuler subview from superview. 
      [vie removeFromSuperview]; 
    } 

请尽量先搜索你对谷歌的问题,如果你没有发现你对谷歌的解决方案在这种情况下,你应该张贴您的问题。见你的答案下面的链接

  1. How can I loop through all subviews of a UIView, and their subviews and their subviews

  2. How to list out all the subviews in a uiviewcontroller in iOS?

  3. http://iphonedevsdk.com/forum/iphone-sdk-development/5599-removing-all-subviews-from-a-view.html

如果你想从你的滚动型或任何其他视图中移除子视图不是试图验证码:

NSArray *viewsToRemove = [yourView subviews]; 

for (UIView *subviewElement in viewsToRemove) 
{ 
    [subviewElement removeFromSuperview]; 
} 

注: - yourView就像scrollDetail或self.view等

我希望它可以帮助您更好地了解任何事情。由于

+0

但我仍然收到此功能的内存警告问题.. 你怎么看待@chandan? – Template09 2013-05-10 06:14:13

+0

你可以请给我,你面临什么样的内存警告... – chandan 2013-05-10 06:18:25

+0

在我的应用程序中,我建立了一个tableview,虽然选择行动,我把分数addsubview像我给了代码。 我认为内存警告问题是当我生成addsubview,我只是再次添加它,并替换该addSubview。 – Template09 2013-05-10 06:36:29