如何获取移动UIImageView的位置

时间:2015-02-25 22:57:03

标签: objective-c animation uiimageview sigabrt

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}}位置的相对值。

1 个答案:

答案 0 :(得分:1)

我认为问题在于表示层没有中心,但你可以得到一个框架。试试这个......

 CALayer *layer = self.squareOne.layer;
 CGRect frame = [[layer presentationLayer] frame];
 CGPoint center = CGPointMake(CGRectGetMidX(frame), CGRectGetMaxY(frame));

希望这有帮助。