如何使用一个for循环来显示的UIImage的
问题描述:
嗨的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?
作为第二个问题,如何在上面的代码中释放*行?
感谢, 达伦
答
一种选择是设置你的相似图片:
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中的哪一行。
答
作为第二个问题,如何在上面的代码中释放*行?
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
答
**
-(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;
}
}
}
**
谢谢aroth,这可能是缺少的环节,我需要。我没有想到使用标签。但是如何释放所有图像的问题依然存在。有关于此的任何想法? – EcksMedia 2011-05-25 23:52:58
好吧,我已经做了一些测试,因为我第一次考虑不可能设置隐藏选项卡,因为没有对每个ImageView的引用。我错过了什么,或者我应该重新考虑这种情况? – EcksMedia 2011-05-26 01:29:15
@EcksMedia - 将您的UIImageView作为子视图添加后即可发布。超级景观将自动保留它,直到你完成它。你应该能够通过调用'viewWithTag:'来检索一个imageView引用,只要你能够找出正确的标签是什么。根据用户的输入,这取决于您的用户界面。基本上你需要用某种方式说:“用户触摸位置'[x]'的控件,这意味着我需要用标签'[y]'”取消隐藏imageView。 – aroth 2011-05-26 02:22:02