-(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
是的,你是对的。谢谢 ! –