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 に答える