SOVLEDпереместить несколько вид изображения не работают, отскакивает назад в исходное положение
См пост ниже
я использую UITouch переместить два imageviews. Когда я перемещаюсь по imageview1 и освобождаю изображениеview1, он остается в этом положении, но когда я начинаю перемещать imageview2, imageview1 возвращается к исходной позиции. То же самое происходит, если сначала переместить imageview2. Я хочу, чтобы изображения отображались в позиции выхода, а не в исходное положение. Я использую тот же код в другом старом проекте xcode, и там работает perfekt.
Вот код, я using-
- (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);
}];
}
}
}
Я благодарен за любую помощь.
Пожалуйста, помогите мне! – user3266053