0

これはサブビューを追加するコードで、サブビューを追加する前に確認したい。

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

4 に答える 4

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

理解を深めるのに役立つことを願っています。ありがとう

于 2013-05-10T06:54:42.023 に答える
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];
    }
于 2013-05-10T04:48:32.917 に答える
0

スクロールビューまたは他のビューからサブビューを削除する場合は、次のコードを試してください。

NSArray *viewsToRemove = [yourView subviews];

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

注:- yourView は scrollDetail や self.view などのようなものです。

理解を深めるのに役立つことを願っています。ありがとう

于 2013-05-10T05:01:10.897 に答える
0

Google で解決策が見つからない場合は、最初に Google で質問を検索してみてください。その場合は、質問を投稿する必要があります。下のリンクであなたの答えを見てください

  1. UIView のすべてのサブビュー、およびそのサブビューとそのサブビューをループするにはどうすればよいですか

  2. iOSのuiviewcontrollerですべてのサブビューを一覧表示するには?

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

于 2013-05-10T04:55:20.607 に答える