gpt4 book ai didi

iphone - 如何为 View 转换的一部分设置动画

转载 作者:行者123 更新时间:2023-11-29 04:19:49 24 4
gpt4 key购买 nike

我最近偶然发现了一个问题,我有一个可以由用户旋转的 View 。然而,在旋转过程中,它应该大 10%(按比例放大)。

我希望缩放是动画的,但旋转是立即可见的,因为我在手势识别器的回调中将其设置为没有动画。

问题:是否可以在不拦截动画缩放的情况下更新 CGAffineTransform 的旋转,或者是否无法创建可缩放的环绕 View ?

最佳答案

编辑:

我认为用于缩放的包装 View 是最不容易出错的方法。

如果您迫切希望避免这种情况,您可以尝试使用 NSTimer 手动创建缩放动画。也许如果您先查询当前的变换值,然后修改它,而不是用独立创建的变换值(用于旋转和缩放)替换它,它就可以工作。

我认为隐式 UIView 动画会在开始时计算所有后续值,因此这会扰乱您的旋转。

另一种方法是在缩放时锁定旋转。缺点是缩放和旋转不能同时进行。不管怎样,你可以创建一个 iVar 或属性,比如 rotationLocked 并做某事。像这样:

- (void)handlePan:(UIPanGestureRecognizer *)gr
{
if (gr.state == UIGestureRecognizerStateBegan)
{
self.rotationLocked = YES;
[UIView animateWithDuration:.2 animations:^{
[self scaleView];
}completion:^{ self.rotationLocked = NO; };
}
if (gr.state == UIGestureRecognizerStateChanged)
{
if (!self.rotationLocked){
// do the rotation
}
if (gr.state == UIGestureRecognizerStateEnded)
{
// do something else
}

关于iphone - 如何为 View 转换的一部分设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13107685/

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