2013-05-10 3 views
0

Это код, который добавляет subview, и я хочу проверить его перед добавлением subview.Как освободить subview в 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); 
    } 
} 

Как проверить и отпустить все подпункты, которые я уже добавлял ранее.

Спасибо.

ответ

2

Если вы хотите удалить подвиды из вашего Scrollview или любого другого вида, чем попробовать этот код:

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

0

попробовать, как это,

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]; 
    } 
0

Пожалуйста, попробуйте поискать первый свой вопрос на Google, если вы не нашли решение на Google в этом случае вы должны опубликовать свой вопрос. Смотрите ответ на ссылку ниже

  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

0

Если вы хотите удалить подвидов из вашего Scrollview или любого другого вида, чем попробовать этот код :

NSArray *viewsToRemove = [yourView subviews]; 

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

Примечание: - yourView любая вещь, как scrollDetail или self.view т.д.

Я надеюсь, что это поможет вам для лучшего понимания. Благодаря

+0

Но я все еще получаю предупреждение о проблеме с памятью в этой функции. Что вы думаете об этом @chandan ?? – Template09

+0

Не могли бы вы прислать мне, какое предупреждение о вашей памяти вы столкнулись ... – chandan

+0

В моих приложениях я построил табличное представление, которое при выборе действия, я помещаю в pagination addubview, как код, который я дал. Я думаю, что проблема с памятью возникает, когда я создаю этот addubview, и я просто добавляю его снова и заменяю, что addSubview. – Template09

Смежные вопросы