2011-04-22 64 views
0

我可以讓這段代碼比這更短嗎?我可以重新編碼循環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); 
     } 
    } 
} 

如果它可以更短?請幫助我如何做到這一點?

回答

1

是的,它可以短一些看到這個

- (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

相關問題