如何在iOS中发布子视图

时间:2013-05-10 04:45:31

标签: 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, 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);
    }
}

如何检查和释放我之前添加的所有子视图。

感谢。

4 个答案:

答案 0 :(得分:2)

如果您想要从滚动视图或任何其他视图中删除子视图,请尝试使用以下代码:

 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);
     }
 }

我希望它可以帮助您更好地理解。感谢

答案 1 :(得分: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];
    }

答案 2 :(得分: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

答案 3 :(得分:0)

如果您想要从滚动视图或任何其他视图中删除子视图,请尝试使用以下代码:

NSArray *viewsToRemove = [yourView subviews];

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

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

我希望它可以帮助您更好地理解。感谢