Iphone 如何从另一个UIImageView中删除UIImageView

Iphone 如何从另一个UIImageView中删除UIImageView,iphone,ipad,Iphone,Ipad,在TouchesBegind方法中,我将stampBrush图像添加到drawImage,其中两者都是UIImageView - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { stampBrush = [[UIImageView alloc] initWithImage:[[PaintColor stampImages] objectAtIndex:[stamp_Default integerForK

在TouchesBegind方法中,我将stampBrush图像添加到drawImage,其中两者都是UIImageView

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

     stampBrush = [[UIImageView alloc] initWithImage:[[PaintColor stampImages] objectAtIndex:[stamp_Default integerForKey:STAMP_TYPE]]];

            [stampBrush setFrame:CGRectMake(lastPoint.x, lastPoint.y, stampBrush.image.size.width,stampBrush.image.size.height)];
            [drawImage addSubview:stampBrush];

}
现在我正试图删除一个一个的removeStampBrush点击! 需要从drawImage中删除哪个stampBrush

-(void)removeStampBrush:(UIButton *)sender{



}

由于您希望按相反的顺序删除戳记,因此我将扩展UIImageView,如下所示:

YourImageView.h

@interface YourImageView : UIImageView {
    NSMutableArray *stamps;
}

- (void)addStamp:(UIImageView *)stamp;
- (void)removeLastStamp;

@end
YourImageView.m

#import "YourImageView.h"

@implementation YourImageView

-(void)dealloc {
    [stamps release];

    [super dealloc];
}


- (void)addStamp:(UIImageView *)stamp {
    if (stamps == nil) {
        stamps = [[NSMutableArray array] retain];
    }

    [stamps addObject:stamp];
    [self addSubview:stamp];
}

- (void)removeLastStamp {
    if (stamps.count > 0) {
        UIImageView *stamp = [stamps lastObject];
        [stamp removeFromSuperview];

        [stamps removeLastObject];
    }
}

@end

现在,从您的触摸事件调用
[drawImage addStamp:stampBrush]
中删除最后一个
[drawImage removeLastStamp]

是否真的需要检查“if”?如果[stampBrush superView]为零怎么办?我想我们可以调用[stampBrush removeFromSuperView],它不应该给出任何错误@萨阿德!我在使用[stampBrush removeFromSuperView]时添加了三个图像;添加到drawImage的最后一个图像在我再次单击时被删除,无法删除!即使我检查条件,如果没有它带来同样的结果!您如何知道要删除哪一个stampBrush?或者你总是想按你添加它们的相反顺序删除它们吗?@iTuker是的,我想按相反顺序删除它们!
#import "YourImageView.h"

@implementation YourImageView

-(void)dealloc {
    [stamps release];

    [super dealloc];
}


- (void)addStamp:(UIImageView *)stamp {
    if (stamps == nil) {
        stamps = [[NSMutableArray array] retain];
    }

    [stamps addObject:stamp];
    [self addSubview:stamp];
}

- (void)removeLastStamp {
    if (stamps.count > 0) {
        UIImageView *stamp = [stamps lastObject];
        [stamp removeFromSuperview];

        [stamps removeLastObject];
    }
}

@end