2011-05-25 23 views
2

嗨的NSArray的, 所以....可以说我有图片如何使用一个for循环来显示的UIImage的

NSMutableArray *images = [NSMutableArray new]; 
[images addObject:[UIImage imageNamed:@"line1.png"]]; 
[images addObject:[UIImage imageNamed:@"line2.png"]]; 
[images addObject:[UIImage imageNamed:@"line3.png"]]; 
[images addObject:[UIImage imageNamed:@"line4.png"]]; 

现在的一个NSArray我想加载所有这些都是使用一次一个for循环,但这里是捕捉....我需要能够将图像设置为隐藏,直到用户通过交互取消隐藏。

for (UIImage *image in images) { 
    UIImageView *line = [[UIImageView alloc] initWithImage:image]; 
    line.hidden = YES; 
    [self.view addSubview:line]; 
} 

但是,然后如何使用另一种方法将隐藏的BOOL设置为NO?

作为第二个问题,如何在上面的代码中释放*行?

感谢, 达伦

回答

5

一种选择是设置你的相似图片:

int nextTag = 1; 
for (UIImage *image in images) { 
    UIImageView *line = [[UIImageView alloc] initWithImage:image]; 
    line.hidden = YES; 
    line.tag = nextTag; 
    [self.view addSubview:line]; 
    [line release]; 
    nextTag++; 
} 

...然后取消隐藏他们,你可以这样做:

UIView* imageView = [self.view viewWithTag: lineNumber]; 
imageView.hidden = NO; 

.. 。假设你的用户交互处理程序能够确定用户正在与用户交互的UI中的哪一行。

+0

谢谢aroth,这可能是缺少的环节,我需要。我没有想到使用标签。但是如何释放所有图像的问题依然存在。有关于此的任何想法? – EcksMedia 2011-05-25 23:52:58

+0

好吧,我已经做了一些测试,因为我第一次考虑不可能设置隐藏选项卡,因为没有对每个ImageView的引用。我错过了什么,或者我应该重新考虑这种情况? – EcksMedia 2011-05-26 01:29:15

+0

@EcksMedia - 将您的UIImageView作为子视图添加后即可发布。超级景观将自动保留它,直到你完成它。你应该能够通过调用'viewWithTag:'来检索一个imageView引用,只要你能够找出正确的标签是什么。根据用户的输入,这取决于您的用户界面。基本上你需要用某种方式说:“用户触摸位置'[x]'的控件,这意味着我需要用标签'[y]'”取消隐藏imageView。 – aroth 2011-05-26 02:22:02

2

作为第二个问题,如何在上面的代码中释放*行?

for (UIImage *image in images) { 
    UIImageView *line = [[UIImageView alloc] initWithImage:image]; 
    line.hidden = YES; 
    [self.view addSubview:line]; // this retains the subview. 
    [line release];    // release line like this. 
} 
+0

够公平的,这是有道理的。谢谢。 – EcksMedia 2011-05-26 01:24:16

0
** 

-(IBAction)btnReviewStar:(id)sender{ 
    for (int i =([sender tag] ==30); i<36; i++) { 
     btnReviewStar.selected = NO; 
     btnReviewStar1.selected = NO; 
     btnReviewStar2.selected = NO; 
     btnReviewStar3.selected = NO; 
     btnReviewStar4.selected = NO; 
     if([sender tag] == 31) { 
      btnReviewStar.selected = YES; 
      break; 
     } else if([sender tag]==32) { 
      btnReviewStar.selected = YES; 
      btnReviewStar1.selected = YES; 
      break; 
     } else if([sender tag]==33) { 
      btnReviewStar.selected = YES; 
      btnReviewStar1.selected = YES; 
      btnReviewStar2.selected = YES; 
      break; 
     } else if([sender tag]==34) { 
      btnReviewStar.selected = YES; 
      btnReviewStar1.selected = YES; 
      btnReviewStar2.selected = YES; 
      btnReviewStar3.selected = YES; 
      break; 
     } else { 
      btnReviewStar.selected = YES; 
      btnReviewStar1.selected = YES; 
      btnReviewStar2.selected = YES; 
      btnReviewStar3.selected = YES; 
      btnReviewStar4.selected = YES; 
      break; 
     } 
    } 
} 

** 
相关问题