2011-10-21 13 views
3

私のビューに複数のImageViewを追加する際に問題があります。私には一連の画像があり、それをどのように循環させて私の見解に追加するのか。このスニペットは、フレームなしで、表示する画像を追加します!Loop add UIImageView Cocoa Touch

- (void)cycleImages:(NSArray *)images { 
    //create an image view 

    int fromLeft = 5; 
    int profilesCount = [images count] - 1; 

    for(int n = 0; n <= profilesCount; n++){ 



     //add image view to view 
     [self.view addSubview:[[[UIImageView alloc] initWithFrame:CGRectMake(5, fromLeft, 48, 48)] initWithImage:[[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[images objectAtIndex:n]]]]]]; 

     fromLeft = fromLeft + 53; 

     NSLog(@"%d", fromLeft); 
    } 
} 

ありがとうございました!

デックス

答えて

1

このようなコードを読んで、あなたはMEMリークを持っているために、その難しいです。してください、これを試してください。

- (void)cycleImages:(NSArray *)images 
{ 
    int fromLeft = 5; 
    NSURL* url = nil; 
    UIImage* img = nil; 
    UIImageView* imgView = nil; 
    NSData* imgData = nil; 

    for (NSString* imgURLStr in images)//Using enumeration much more easy and in ObjC style 
    { 
     //Put breakpoint here and check all varibles initialized coorecly step by step 
     url = [NSURL URLWithString:imgURLStr]; 
     imgData = [NSData dataWithContentsOfURL:url]; 
     img = [[UIImage alloc] initWithData:imgData]; 
     imgView = [[UIImageView alloc] initWithImage:img]; 

     imgView.frame = CGRectMake(5, fromLeft, 48, 48); 

     [self.view addSubView:imgView]; 

     fromLeft = fromLeft + 53; 
     NSLog(@"%d", fromLeft); 

     //Clean up 
     [img release]; 
     [imgView release]; 
    } 
} 

ありがとう!

+0

ありがとうございました。addSubView - > addSubviewにタイプミスがあります – kursus

関連する問題