У меня есть два UIImageView, расположенных по центру горизонтального экрана, и когда пользователь нажимает кнопку, другой UIImageView, расположенный вне экрана, скользит справа. Я просто пытаюсь определить, когда изображение, выводимое на экран, сталкивается с двумя статическими видами. Проблема заключается в том, что когда я запускаю свой код и проверяю кадры CGRect, они возвращаются из того места, где начинаются, а не заканчиваются представления, независимо от того, где я размещаю вызовы фреймов в моем методе или даже если я размещаю их вне метода в отдельном. Я немного новичок в Obj-C, и я понимаю, что Core Animation работает в отдельном потоке, и я предполагаю, что именно поэтому я получаю начальные значения. (Поправьте меня, если я здесь не прав).
Итак, я предполагаю, что вопрос в том, как обнаружить столкновения, когда один элемент статичен, а другой анимирован. Вот мой код (не стесняйтесь его чистить):
- (IBAction)movegirl
{
//disabling button
self.movegirlbtn.enabled = NO;
//getting graphics center points
CGPoint pos = bushidogirl.center;
CGPoint box1 = topbox.center;
CGPoint box2 = bottombox.center;
//firing up animation
[UIView beginAnimations: nil context: NULL];
//setting animation speed
[UIView setAnimationDuration:2.0 ];
//setting final position of bushidogirl, then resetting her center position
pos.x = 260;
bushidogirl.center = pos;
//running animations
[UIView commitAnimations];
//playing gong sound
[self.audioplayer play];
//enabling button
self.movegirlbtn.enabled = YES;
[self collisiondetection: bushidogirl : topbox];
}
- (void)collisiondetection:(UIImageView *)item1 : (UIImageView *)item2
{
CGRect item1frame = item1.frame;
CGRect item2frame = item2.frame;
NSLog(@"Item1 frame = %d and Item 2 frame = %d", item1frame, item2frame);
}