【问题标题】:How to get UIImageView real location in view while animation?动画时如何在视图中获取 UIImageView 的真实位置?
【发布时间】:2011-10-24 00:09:33
【问题描述】:

大家好,


对于我使用的动画:

[UIView commitAnimation:@"anim" context:nil];
[UIView setAnumatioDuration:10];
imageView.center=CGPointMake(100,100);
[UIView 提交动画];


问题是,当我每 0.5 秒使用计时器调用一次时:

CGRect rect=[[imageview.layer presentationLayer]frame];
CGPoint 点=rect.origin;
NSLog(@"x:%f,y:%f",origin.x,origin.y);


我将永远得到 x:100,y:100
而我想要得到的是视图上的真实位置
而图像视图 标题 到 (100,100)

10 倍很多

【问题讨论】:

  • Benny,首先,FAQ 中不允许签名。此外,您不需要用 HTML 编写问题。 StackOverflow 允许您使用 Markdown 格式,因此您可以只写纯文本。 ;)

标签: objective-c uiimageview presentation-layer commitanimations


【解决方案1】:

动画在视图的表示层上更新。您可以通过查看该层来检索表示动画期间图像视图当前状态的值。

CGPoint center = [[imageView.layer presentationLayer] center];

【讨论】:

  • 这看起来与他所做的基本相同,只是他试图从框架属性而不是中心获取原点。但它应该是一样的,不是吗?
  • 不,对象框上的属性会立即设置到它们的最终位置,但是表示层会将属性从原来的位置转换到新位置,因此您可以随时查询该层并在动画期间获取当前位置,使用对象层不提供此功能。
  • 但是他用的是presentation frame,他是这样写的:CGRect rect=[[imageview.layer presentationLayer]frame];
  • 不要忘记添加 QuartzCore.framework 并在您的代码中包含“QuartzCore/QuartzCore.h”。
猜你喜欢
  • 1970-01-01
  • 2012-10-29
  • 2015-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多