gpt4 book ai didi

iphone - 使用 CGAffineTransform 对图像进行动画处理并在指定点获取 CGPoint?

转载 作者:行者123 更新时间:2023-11-29 05:04:18 25 4
gpt4 key购买 nike

我是 iPhone 新手,我使用 CGAffineTransform 从上到下对图像进行动画处理,并且当图像位于 (155,50) 位置时我想执行一些任务,如何通过这些代码或其他源获取此位置?

    CGRect frameRect=CGRectMake(155, 0, 9, 8);
boxView=[[UIImageView alloc] initWithFrame:frameRect];
boxView.image = [UIImage imageNamed:@"Projectile2.png"];
[self.view addSubview:boxView];
[boxView release];

CGPoint location = CGPointMake(159.5, 500);

[UIImageView beginAnimations:nil context:nil];
[UIImageView setAnimationDelegate:self];
[UIImageView setAnimationDuration:1.5f];
[UIImageView setAnimationCurve:UIViewAnimationCurveEaseInOut];

CGAffineTransform scaleTrans = CGAffineTransformMakeScale(scaleFactor, scaleFactor);
CGAffineTransform rotateTrans = CGAffineTransformMakeRotation(angle * M_PI / 180);

boxView.transform = CGAffineTransformConcat(scaleTrans, rotateTrans);
angle = (angle == 180 ? 360 : 180);
boxView.center = location;
[UIImageView commitAnimations];

提前致谢...

最佳答案

据我所知,在动画过程中不会调用任何回调,只是在动画的开始或结束时调用(这对于基于 block 的动画和旧的非 block 方法似乎都是如此)

你可以这样做:

1-为要跟踪的 View 的“center”属性注册一个 KVO 观察者

[viewToTrack addObserver:anObserver 
forKeyPath:@"center"
options:NSKeyValueObservingOptionNew
context:somePointerToYourContextOrNIL];

2-每次中心属性发生变化时都会调用回调。观察者必须实现此方法

- (void)observeValueForKeyPath:(NSString *)keyPath 
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context

keyPath 将包含您正在跟踪的属性的名称,对象是 viewToTrack

change 将包含新值(基于前面的示例),上下文为

somePointerToYourContextOrNIL(可以为零)

3-在回调中,您将收到(根据您注册的方式)属性的旧值和/或新值

4-检查您何时足够接近您应该做的事情

这是 KVO 的入门指南

关于iphone - 使用 CGAffineTransform 对图像进行动画处理并在指定点获取 CGPoint?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5974793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com