Reputation: 646
I'm using this code to display random images on the screen.
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:touch.view];
UIImageView *cloud = [[UIImageView alloc]
initWithImage:[UIImage imageNamed:@"spit.png"]];
cloud.center = CGPointMake(random() % 250, random() % 400); //Random place
[cloud setAlpha:1];
[self.view addSubview:cloud];
[cloud release];
cloud.frame = CGRectMake(0, 0, 300, 300);
[UIView beginAnimations: @"cloddy" context: nil];
[UIView setAnimationDuration: 0.5f];
[UIView setAnimationCurve: UIViewAnimationCurveEaseIn];
// Size when done
cloud.frame = CGRectMake(0, 0, 75, 75);
cloud.center = location;
[UIView commitAnimations];
}
after a couple of touches the screen gets kinda full. How do I remove them inside another IBAction? And why does the animation always start in the upper left corner even though I'm using random?
Upvotes: 0
Views: 737
Reputation: 1099
Assuming that the only subviews that have been added to your view are clouds
,
- (IBAction)clearClouds:(id)sender{
[[[self view] subviews] makeObjectsPerformSelector: @selector(removeFromSuperview)];
}
The cloud is always starting at the upper left because this line: cloud.frame = CGRectMake(0, 0, 300, 300);
resets its origin to 0,0. Move cloud.center = CGPointMake(random() % 250, random() % 400);
below the line where you set the cloud's frame and you should be all set.
Upvotes: 1