在iOS 5下,我遇到以下问题:每次在应用程序中挑选新产品时,都会在控制器上调用以下代码。它在控制器视图中显示功能的项目符号列表。
每个项目符号都是添加在正确位置(相应文本前面)的图像。
现在,问题在于,有时候,显然是随机的,一些子弹不会从之前的子弹列表中删除,尽管我在方法开头从超级视图中删除它。
- (void) loadProduct{
for (UIView * bullet in bullets){
bullet.hidden = YES;
[bullet removeFromSuperview];
}
[bullets removeAllObjects];
[self.view setNeedsDisplay];
......here some stuff ......
for (int i=0;i< numberOfFeatures;i++)
{
UIImageView * bullet = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"bullet.png"]];
bullet.frame =CGRectMake(someFloatValue ,
someOtherFloatValue,
6,
6);
[self.view addSubview:bullet];
[bullets addObject:bullet];
[bullet release];
}
}
bullets
是一个NSMutableArray,是控制器的一个属性。
我在这里做错了吗?
答案 0 :(得分:1)
在bullets
中,您似乎只存储标签:
[bullets addObject:label];
因此,当从bullets
删除所有内容时,您只需从超级视图中删除标签,子弹(UIImageView
控件)就会保留在那里。
如果您创建自定义控件(包含项目符号和标签的视图)并使用这些控件可能会更容易