Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 同一动画块中的两个特性更改具有不同的持续时间。为什么?_Iphone_Animation_Uiview_Ios - Fatal编程技术网

Iphone 同一动画块中的两个特性更改具有不同的持续时间。为什么?

Iphone 同一动画块中的两个特性更改具有不同的持续时间。为什么?,iphone,animation,uiview,ios,Iphone,Animation,Uiview,Ios,在下面的UIView动画块中,我进行了cGrafineTransformMakeScale和cGrafineTransformMakeRotation,虽然持续时间设置为1.0f,缩放速度非常快,旋转时间为1秒 这一定是因为我不了解仿射变换是如何应用的,但我想不出来 有什么好处 编辑:弗拉基米尔的回答非常有效。我将同一属性更改两次,而不是更改两个属性。要对transform属性进行两次更改,必须对初始更改进行transform,然后将第二次更改添加到该transform中,然后从此处设置对象的t

在下面的
UIView
动画块中,我进行了
cGrafineTransformMakeScale
cGrafineTransformMakeRotation
,虽然
持续时间
设置为
1.0f,
缩放速度非常快,旋转时间为1秒

这一定是因为我不了解仿射变换是如何应用的,但我想不出来

有什么好处

编辑:弗拉基米尔的回答非常有效。我将同一属性更改两次,而不是更改两个属性。要对
transform
属性进行两次更改,必须对初始更改进行
transform
,然后将第二次更改添加到该
transform
中,然后从此处设置对象的
transform
。这样,您可以将任意多个链接在一起


第2行覆盖第1行的效果。您应该构造整个变换,然后将其应用于视图:

CGAffineTransform tr = CGAffineTransformMakeScale(2.0f,2.0f);
tr = CGAffineTransformRotate(tr, M_PI/4);
[self setTransform: tr];
[self setTransform:CGAffineTransformMakeScale(2.0, 2.0)];
[self setTransform:CGAffineTransformMakeRotation(M_PI / 4)];
CGAffineTransform tr = CGAffineTransformMakeScale(2.0f,2.0f);
tr = CGAffineTransformRotate(tr, M_PI/4);
[self setTransform: tr];