动画时如何在视图中获取 UIImageView 的真实位置?
Posted
技术标签:
【中文标题】动画时如何在视图中获取 UIImageView 的真实位置?【英文标题】:How to get UIImageView real location in view while animation? 【发布时间】: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 编写问题。 *** 允许您使用 Markdown 格式,因此您可以只写纯文本。 ;) 【参考方案1】:动画在视图的表示层上更新。您可以通过查看该层来检索表示动画期间图像视图当前状态的值。
CGPoint center = [[imageView.layer presentationLayer] center];
【讨论】:
这看起来与他所做的基本相同,只是他试图从框架属性而不是中心获取原点。但它应该是一样的,不是吗? 不,对象框上的属性会立即设置到它们的最终位置,但是表示层会将属性从原来的位置转换到新位置,因此您可以随时查询该层并在动画期间获取当前位置,使用对象层不提供此功能。 但是他用的是presentation frame,他是这样写的:CGRect rect=[[imageview.layer presentationLayer]frame]; 不要忘记添加 QuartzCore.framework 并在您的代码中包含“QuartzCore/QuartzCore.h”。以上是关于动画时如何在视图中获取 UIImageView 的真实位置?的主要内容,如果未能解决你的问题,请参考以下文章
带有 UIImageView 子视图的 UIButton 以显示动画图像