在touchesBegan
我有这个,以及其他一些不相关的代码。 :
CGPoint center;
center = [[self.squareOne.layer presentationLayer] center];
squareOne
使用基于块的UIView animation
移动。动画代码:
self.squareOne.center = position;
self.squareOne.transform = CGAffineTransformMakeRotation((a + 1) * M_1_PI);
如果真的重要,那就是position
:
position.x = self.widthOfScreen/8 + self.widthOfScreen;
position.y = y;
//y is any number between 0 and the height of the screen
但是当我点击屏幕时,我遇到了可怕的:Thread 1: signal SIGABRT
错误。 (我说touchesBegan
中的其他代码是无关紧要的,因为这两行代码是问题所在。其余的只是if语句最终会使squareOne
变为隐藏状态。我问我在点击屏幕时如何获得UIImageView
动画片中间位置的位置。如果你获得中心并不重要,我只想知道如何在squareOne
移动时得到{{1}}位置的相对值。
答案 0 :(得分:1)
我认为问题在于表示层没有中心,但你可以得到一个框架。试试这个......
CALayer *layer = self.squareOne.layer;
CGRect frame = [[layer presentationLayer] frame];
CGPoint center = CGPointMake(CGRectGetMidX(frame), CGRectGetMaxY(frame));
希望这有帮助。