-(void)createTurtle
是一個定時器動作刪除隨機生成按鈕
-(void)createTurtle {
NSUInteger r = arc4random_uniform(284) + 1;
int storedIntegerFromTurtle = [[NSUserDefaults standardUserDefaults] integerForKey:@"savedTurtleTag"];
turtle = [[UIButton alloc] init];
turtle.frame = CGRectMake(r, -50, 36, 47);
[turtle setImage:[UIImage imageNamed:@"turtle.png"] forState:UIControlStateNormal];
[turtle addTarget:self action:@selector(turtleTouched:) forControlEvents:UIControlEventTouchDown];
[turtle setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[turtle setTag:storedIntegerFromTurtle+1];
[self.view bringSubviewToFront:turtle];
[self.view addSubview:turtle];
[[NSUserDefaults standardUserDefaults] setInteger:turtle.tag forKey:@"savedTurtleTag"];
NSLog(@"%i", turtle.tag);
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:15];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
turtle.frame = CGRectMake(turtle.frame.origin.x, self.view.frame.size.height, 36, 47);
[UIView commitAnimations];
}
而且通過點擊就可以了,我會刪除所選的按鈕:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
CGPoint p =[((UITouch *)[touches anyObject]) locationInView:self.view];
CGRect r= [turtle.layer.presentationLayer frame];
int selectedTurtleTag;
if (CGRectContainsPoint(r, p))
{
selectedTurtleTag = turtle.tag;
}
BOOL contains= CGRectContainsPoint(r, p);
if(contains)
{
if (turtle.tag == selectedTurtleTag)
{
NSLog(@"Turtle-Tag: %i", selectedTurtleTag);
[[self.view viewWithTag:selectedTurtleTag] removeFromSuperview];
}
}
}
我的問題是,我只能刪除最新創建按鈕。 我會刪除任何被點擊的按鈕。
你爲什麼不創建一個數組來容納所有的「烏龜」。然後你可以得到一個句柄,而不必使用標記符號。從數組和屏幕刪除任何你想要的東西。 – Putz1103
是的,你是對的。謝謝 ! –