Iphone 如何在iOS中释放子视图
这是添加子视图的代码,我想在添加子视图之前检查它Iphone 如何在iOS中释放子视图,iphone,ios,Iphone,Ios,这是添加子视图的代码,我想在添加子视图之前检查它 numberOfViews = [[GlobalVariable sharedInstance].itemNewsDetail count]; for (int i = 0; i < numberOfViews; i++) { @try{ CGFloat xOrigin = i * 320; CGRect frame; frame.size = CGSizeMake(320, 36
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];
对于(int i=0;i
如何检查和释放我以前添加的所有子视图
谢谢。像这样试试
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];
}
请先在谷歌上搜索你的问题,如果你在谷歌上找不到你的解决方案,那么你应该发布你的问题。请在下面的链接中查看您的答案
如果要从scrollview或任何其他视图中删除子视图,请尝试以下代码:
NSArray *viewsToRemove = [yourView subviews];
for (UIView *subviewElement in viewsToRemove)
{
[subviewElement removeFromSuperview];
}
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);
}
}
注意:-您的视图是任何类似scrollDetail或self.view等的东西
我希望它能帮助你更好地理解。如果要从scrollview或任何其他视图中删除子视图,请尝试以下代码,谢谢:
NSArray *viewsToRemove = [yourView subviews];
for (UIView *subviewElement in viewsToRemove)
{
[subviewElement removeFromSuperview];
}
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);
}
}
numberOfViews=[[GlobalVariable sharedInstance].itemNewsDetail count];
用于(滚动详细信息中的UIView*子视图元素。子视图)
{
[子视图元素从SuperView移除];
}
对于(int i=0;i
我希望它能帮助你更好地理解。谢谢但是我在这个函数中仍然收到内存警告问题。。你觉得@chandan怎么样?在我的应用程序中,我构建了一个tableview,在选择action时,我将分页添加子视图,就像我给出的代码一样。我认为内存警告的问题是当我生成addsubview时,我只是再次添加它并替换addsubview。我已经应用了它,它工作正常。我补充了另一个答案。我已将我的答案与您的代码合并。如果仍然存在任何问题,请告诉我。警告可能是[detailVC.view release];所以改变它[detailVC release];并检查是否设置了scrollview的委托。有时它会发出警告。如果仍然存在问题,请将属性指定给scrollDetail并将其用作self.scrollDetail。谢谢我不能像你说的那样改变它,如果我改为[detailVC release],我的应用程序会出现lldb错误。谢谢你的帮助@chandan。。但我的应用程序仍然会强制关闭,并出现另一个错误。。lldb。你觉得怎么样?