我可以重新编码循环UIImageView以获得更短的代码吗?

问题描述:

我可以让这段代码比这更短吗?我可以重新编码循环UIImageView以获得更短的代码吗?

- (void) setupFeature 
{ NSArray *numbers = [NSArray arrayWithObjects: @"01", @"02", @"03",@"04",@"05",@"06", nil]; 
    position = CGRectMake(7, position.origin.y+20, 72, 72); 

    int j=0; 
    NSString *pic; 
    UIImageView *a_pic; 
    NSMutableArray *C_Pic = [[[NSMutableArray alloc] init] autorelease]; 
    for (int i=0; i<[numbers count]; i++) 
    { 
     UIImageView *picture = [[UIImageView alloc] init]; 
     [C_Pic addObject:picture]; 
     [picture release]; 
     a_pic = [C_Pic objectAtIndex:i]; 
     pic = [NSString stringWithFormat:@"iconD%@",[numbers objectAtIndex:i]]; 
     a_pic.image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:pic ofType:@"png"]]; 
     if(j<4) 
     { 
      a_pic.frame = position; 
      [scrollView addSubview:a_pic]; 
      position = CGRectMake(position.origin.x+77, position.origin.y, 72, 72); 
      j++; 
     } 
     else 
     { 
      j=0; 
      position = CGRectMake(7, position.origin.y+77, 72, 72); 
      NSLog(@"Pic%i position %@",i, NSStringFromCGRect(self.position)); 
      a_pic.frame = position; 
      [scrollView addSubview:a_pic]; 
      position = CGRectMake(position.origin.x+77, position.origin.y, 72, 72); 
     } 
    } 
} 

如果它可以更短?请帮助我如何做到这一点?

是的,它可以短一些看到这个

- (void) setupFeature 
{ 
NSArray *numbers = [NSArray arrayWithObjects: @"01", @"02", @"03",@"04",@"05",@"06", nil]; 
    position = CGRectMake(7, position.origin.y+20, 72, 72); 

    int j=0; 
    NSString *pic; 
    UIImageView *a_pic; 
    NSMutableArray *C_Pic = [[[NSMutableArray alloc] init] autorelease]; 
    for (int i=0; i<[numbers count]; i++) 
    { 
     UIImageView *picture = [[UIImageView alloc] init]; 
     [C_Pic addObject:picture]; 
     [picture release]; 
     a_pic = [C_Pic objectAtIndex:i]; 
     pic = [NSString stringWithFormat:@"iconD%@",[numbers objectAtIndex:i]]; 
     a_pic.image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:pic ofType:@"png"]]; 
     if(j<4) 
     { 

      j++; 
     } 
     else 
     { 
      j=0; 
      position = CGRectMake(7, position.origin.y+77, 72, 72); 
      NSLog(@"Pic%i position %@",i, NSStringFromCGRect(self.position)); 

     } 
    //No need to repeat this code 
      a_pic.frame = position; 
      [scrollView addSubview:a_pic]; 
      position = CGRectMake(position.origin.x+77, position.origin.y, 72, 72); 
    } 
} 
+0

哦,我忘了移动代码,在if.Thank你 – crazyoxygen 2011-04-22 06:45:26