ボタンがタップされたときにオブジェクトを削除したいのですが、最初のビューでしか機能せず、他のビューは削除されません。
私を助けてください、
これは私のコードです
self.frame = CGRectMake(0, 0, 1024, 768);
UIButton *deleteButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
deleteButton.frame = CGRectMake(0, 0, 100, 100);
[deleteButton setTitle:@"fuck" forState:UIControlStateNormal];
[deleteButton addTarget:self action:@selector(removeViews) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:deleteButton];
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(100, 200, 400, 100)];
[scrollView setScrollEnabled:YES];
scrollView.pagingEnabled = YES;
[scrollView setDelegate:self];
scrollView.backgroundColor = [UIColor brownColor];
[scrollView setShowsHorizontalScrollIndicator:YES];
[scrollView setIndicatorStyle:UIScrollViewIndicatorStyleDefault]; scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
scrollView.contentMode = UIViewContentModeScaleToFill;
[scrollView setContentSize:CGSizeMake(1000,100)];
[self addSubview:scrollView];
[self setBackgroundColor:[[UIColor blackColor] colorWithAlphaComponent:0.8]];
circleView = [[UIView alloc] initWithFrame:CGRectMake(100,5,90,90)];
circleView.backgroundColor = [[UIColor whiteColor] colorWithAlphaComponent:1];
//circleView.layer.borderColor = [[UIColor blackColor] CGColor];
//circleView.layer.borderWidth = 4;
UILabel* circleIndex = [[UILabel alloc] init];
circleIndex.frame = CGRectMake(30, 25, 40, 40);
[circleIndex setFont:[UIFont fontWithName:@"Arial-BoldMT" size:40]];
[circleIndex setText:@"A"];
[circleView addSubview:circleIndex];
circleView2 = [[UIView alloc] initWithFrame:CGRectMake(100+100,5,90,90)];
circleView2.backgroundColor = [[UIColor whiteColor] colorWithAlphaComponent:1];
circleView3 = [[UIView alloc] initWithFrame:CGRectMake(100+100+100,5,90,90)];
circleView3.backgroundColor = [[UIColor whiteColor] colorWithAlphaComponent:1];
circleView4 = [[UIView alloc] initWithFrame:CGRectMake(100+100+100+100,5,90,90)];
circleView4.backgroundColor = [[UIColor whiteColor] colorWithAlphaComponent:1];
circleView5 = [[UIView alloc] initWithFrame:CGRectMake(100+100+100+100+100,5,90,90)];
circleView5.backgroundColor = [[UIColor whiteColor] colorWithAlphaComponent:1];
circleView6 = [[UIView alloc] initWithFrame:CGRectMake(100+100+100+100+100+100,5,90,90)];
circleView6.backgroundColor = [[UIColor whiteColor] colorWithAlphaComponent:1];
[scrollView addSubview:circleView];
[scrollView addSubview:circleView2];
[scrollView addSubview:circleView3];
[scrollView addSubview:circleView4];
[scrollView addSubview:circleView5];
[scrollView addSubview:circleView6];
exitView = [[UIView alloc] initWithFrame:CGRectMake(70,-5,30,30)];
exitView.layer.cornerRadius = 15;
exitView.backgroundColor = [UIColor redColor];
exitView.layer.borderColor = [[UIColor whiteColor] CGColor];
exitView.layer.borderWidth = 2;
[circleView addSubview:exitView];
UIView *exitLabel = [[UIView alloc] initWithFrame:CGRectMake(8,13,15,3)];
exitLabel.backgroundColor = [UIColor clearColor];
exitLabel.layer.borderColor = [[UIColor whiteColor] CGColor];
exitLabel.layer.borderWidth = 2;
[exitView addSubview:exitLabel];
UILongPressGestureRecognizer *longPress =
[[UILongPressGestureRecognizer alloc] initWithTarget:self
action:@selector(handleLongPress:)];
[circleView addGestureRecognizer:longPress];
UITapGestureRecognizer *singlePress =
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(handleSinglePress:)];
[exitView addGestureRecognizer:singlePress];
//[longPress release];
UITapGestureRecognizer *singlePress2 =
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(singlePress:)];
[circleView2 addGestureRecognizer:singlePress2];
[exitView setHidden:YES];
//[circleView bringSubviewToFront:exitView];
//[exitView setUserInteractionEnabled:YES];
}
return self;
}
-(void)removeViews{
[self.circleView3 removeFromSuperview];
[scrollView setNeedsDisplay];
[self setNeedsDisplay];
}
他(circleView2、circleView3など)ではなく、唯一のcircleViewを削除できます。