0

在 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,是控制器的一个属性。

我在这里做错了吗?

4

1 回答 1

1

看来bullets您只存储标签:

[bullets addObject:label];

因此,当从 中删除所有内容时bullets,您只是从超级视图中删除标签,项目符号(UIImageView控件)保留在那里。

如果您创建自定义控件(同时包含项目符号和标签的视图)并使用它们可能会更容易

于 2011-12-30T13:48:43.080 回答