-1

保存UIImageしているアプリを作成していますNSMutableArray

    -(void)mainImageSelected: (id)sender
{    
    mainImageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"image%d.png",[sender tag]]]];
    [myArray addObject:mainImageView];
}

今、私はこの画像をユーザーが触れた場所に表示したいと考えています。私はこのようなことをしています:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint point = [touch locationInView:self.view];

    if ([currentObject isEqualToString:@"myObject"])
    {
            NSLog(@"Hello World");
            [self.view addSubview:[myArray lastObject]];
            [[myArray lastObject]setCenter:point];
    }
}

ここまでは問題なく動作していますが、ユーザーが元に戻すボタンを押したときにこの画像を削除したいという問題があります。このために、私は次のようなことをしています:

-(IBAction)Undo
{
    [myArray removeLastObject];
}

配列からオブジェクトを削除していますが、画像は削除/削除されていません。どなたかこの問題を解いてください。

4

3 に答える 3

8
-(IBAction)decorationUndo
{
    [decorationArray removeLastObject];
    [self.view.subviews removeLastObject];
    [self setNeedsDisplay];
}
于 2012-12-26T11:15:50.783 に答える
3

また、配列から画像を削除する前に、配置されているビューから画像を削除する必要があります。

 -(IBAction)decorationUndo
{
  [[myArray lastObject] removeFromSuperview];
  [myArray removeLastObject];
}

上記のコードでは、それが画像を含むオブジェクトdecorationArrayの配列であると想定しています。UIImageView

于 2012-12-26T11:16:17.987 に答える
2

アレイから削除する前に、まずビューから削除してください。

-(IBAction)Undo
{
    [[myArray lastObject] removeFromSuperview];
    [myArray removeLastObject];
}
于 2012-12-26T11:19:43.377 に答える