如何获取移动 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中的其他代码无关紧要,因为这 2 行代码是问题所在。其余的几乎只是 if 语句,最终只会squareOne变得隐藏(。我问当我单击屏幕时如何获得UIImageView中间动画的位置。你是否得到中心并不重要,我只想知道如何在squareOne移动时获得位置的相对值。

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

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

希望这有所帮助。

最新更新