如何获取移动 UIImageView 的位置

How to get location of moving a UIImageView

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的位置在移动时的相对值

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

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

希望对您有所帮助。