Ios 如何获取动画中制作的最旧对象的位置?
我每秒钟都会看到一种叫做“法国炸薯条”的炸薯条。我还让它们通过动画在屏幕上移动Ios 如何获取动画中制作的最旧对象的位置?,ios,objective-c,presentation-layer,Ios,Objective C,Presentation Layer,我每秒钟都会看到一种叫做“法国炸薯条”的炸薯条。我还让它们通过动画在屏幕上移动 -(void)FrenchFrieRain{ FrenchFrie = [[UIImageView alloc] initWithFrame:CGRectMake(randomX,0,30,30)]; FrenchFrie.image = [UIImage imageNamed:@"FrenchFriesMCDonalds"]; FrenchFrie.userInteractionEnable
-(void)FrenchFrieRain{
FrenchFrie = [[UIImageView alloc] initWithFrame:CGRectMake(randomX,0,30,30)];
FrenchFrie.image = [UIImage imageNamed:@"FrenchFriesMCDonalds"];
FrenchFrie.userInteractionEnabled = YES;
[self.view addSubview:FrenchFrie];
[FrenchFrieArray addObject: FrenchFrie];
[self letFrenchFrieFall];
}
-(void)letFrenchFrieFall {
[UIView animateWithDuration:10.0f delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
FrenchFrie.frame = CGRectMake(randomX, (int)[[UIScreen mainScreen] bounds].size.height + 40, FrenchFrie.frame.size.width, FrenchFrie.frame.size.height);
} completion:^(BOOL finished){
[[FrenchFrieArray objectAtIndex:0] removeFromSuperview];
}];
}
我需要在动画中显示薯条的位置。我使用以下代码执行此操作:
FrenchFrieFrame = [[FrenchFrie.layer presentationLayer] frame];
从NSLogging我知道,通过这段代码,我得到了最新frie的位置,但我需要最老frie的位置。我怎样才能知道最古老的炸薯条的位置?
任何帮助都将不胜感激 您正在跟踪在
FrenchFrieArray
中创建FrenchFries
的顺序。因此,索引0
处的项目始终是最早的FrenchFrie
。您可以使用:
FrenchFrieFrame = [[FrenchFrieArray[0].layer presentationLayer] frame];
要使其起作用,除了从视图中删除它之外,还应该从数组中删除FrenchFrie
:
[[FrenchFrieArray objectAtIndex:0] removeFromSuperview];
[[FrenchFrieArray removeObjectAtIndex:0];
薯条从屏幕上掉下来,我想知道薯条和屏幕底部的篮子是否发生碰撞。如果他们没有碰撞,最后的薯条应该从屏幕上掉下来消失,否则它应该消失在篮子的中心。我无法制作最旧的FrenchFrie,因为最旧的FrenchFrie从屏幕上掉下来后,创建的第二个FrenchFrieFrame将成为最旧的。抱歉,请执行以下操作:
[((FrenchFrie*)FrenchFrieArray[0])。layer
或[[FrenchFrieArray[0]layer]…
FrenchFrieFrame=[[FrenchFrieArray[0]。layer presentationLayer]frame];出现错误。我尝试了OldestFrenchFrie=[FrenchFrieArray objectAtIndex:0];FrenchFrieFrame=[OldestFrenchFrie.layer presentationLayer]frame];这没有出现错误,但如果我记录frie的位置,我会得到x-co=0和Y-co=0。此外,当我将FrenchFrie添加到数组中时,数组的值在调试区域中保持为零。