sovledmehrere Bildansicht bewegen, funktionieren nicht springt zurück zur Startposition
Siehe Beitrag unten
I UITouch verwenden zwei imageviews zu bewegen. Wenn ich mich in der Bildansicht1 bewege und die Bildansicht1 freigebe, bleibt sie in dieser Position, aber wenn ich anfange, Bildansicht2 zu bewegen, springt Bildansicht1 zurück zur Startposition. Das Gleiche passiert, wenn ich imageview2 zuerst bewege. Was ich will ist, dass die Bildansichten in der Freigabeposition bleiben, nicht um zurück zur Startposition zu springen. Ich habe den gleichen Code in einem anderen alten xcode-Projekt verwendet und es funktioniert dort einwandfrei. Hier
ist der Code, den ich using- bin
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
// get touch event
UITouch *touch = [[event allTouches] anyObject];
CGPoint touchLocation = [touch locationInView:self.view];
if ([touch view] == imageView1 && imageView1.tag == 0) { // If touched view is imageView1 , then assign it its new location
imageView1.center = touchLocation;
[self.view bringSubviewToFront:imageView1];
}
if ([touch view] == imageView2 && imageView2.tag == 0) { // If touched view is imageView2, then assign it its new location
imageView2.center = touchLocation;
[self.view bringSubviewToFront:imageView2];
[imageView2 setFrame:CGRectMake(imageView2.frame.origin.x,
imageView2.frame.origin.y,68,138)];
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [[event allTouches] anyObject];
CGPoint touchLocation = [touch locationInView:self.view];
NSLog(@"%@", NSStringFromCGPoint(touchLocation));
if ([touch view] == imageView1 && imageView1.tag == 0) {
if ((touchLocation.x >= 289 && touchLocation.x <= 381) && (touchLocation.y >= 99 && touchLocation.y <= 135)) {
//NSLog(@"imageView1");
imageView1.tag=1;
[UIView animateWithDuration:0.35
delay:0.0
options: UIViewAnimationOptionAllowAnimatedContent
animations:^{
imageView1.frame = CGRectMake(244.0, 64.0, 112, 97);
NSURL *musicFile;
musicFile = [NSURL fileURLWithPath:
[[NSBundle mainBundle]
pathForResource:@"knapp"
ofType:@"mp3"]];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
[audioPlayer play];
audioPlayer.delegate = self;
}
completion:^(BOOL finished){
NSLog(@"Auto adjust!");
}];
}
else {
[UIView animateWithDuration:0.35
delay:0.0
options: UIViewAnimationOptionAllowAnimatedContent
animations:^{
imageView1.frame = CGRectMake(50, 626, 112, 97);
}
completion:^(BOOL finished){
NSLog(@"imageView1!");
//NSLog(@"Jump back!");
NSLog(@"%ld", (long)imageView1.tag);
}];
}
}
if ([touch view] == imageView2 && imageView2.tag == 0) {
if ((touchLocation.x >= 426 && touchLocation.x <= 450) && (touchLocation.y >= 210 && touchLocation.y <= 240)) {
//NSLog(@"imageView2");
imageView2.tag=1;
[UIView animateWithDuration:0.35
delay:0.0
options: UIViewAnimationOptionAllowAnimatedContent
animations:^{
imageView2.frame = CGRectMake(408.0, 152.0, 68, 138);
NSURL *musicFile;
musicFile = [NSURL fileURLWithPath:
[[NSBundle mainBundle]
pathForResource:@"knapp"
ofType:@"mp3"]];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
[audioPlayer play];
audioPlayer.delegate = self;
}
completion:^(BOOL finished){
NSLog(@"Auto adjust!");
}];
}
else {
[UIView animateWithDuration:0.35
delay:0.0
options: UIViewAnimationOptionAllowAnimatedContent
animations:^{
imageView2.frame = CGRectMake(82, 519, 49, 99);
}
completion:^(BOOL finished){
//NSLog(@"Jump back");
NSLog(@"%ld", (long)imageView2.tag);
}];
}
}
}
Ich bin dankbar für jede Hilfe.
Bitte helfen Sie mir! – user3266053