在以下UIView
动画块中,我执行了CGAffineTransformMakeScale
和CGAffineTransformMakeRotation
,虽然duration
设置为1.0f,
,但规模确实很高快速,旋转在1秒钟内完成。
一定是我对如何应用AffineTransforms
缺乏了解,但我无法理解。
是什么给出了?
编辑:弗拉基米尔的回答很有效。我两次更改同一属性,而不是更改两个属性。要对transform
属性进行两项更改,您必须使用初始更改生成transform
,然后将第二项更改添加到transform
,然后设置对象的transform
从那里。这样,您可以根据需要将多个链接在一起。
CGColorRef color = [[colorArray objectAtIndex:colorIndex] CGColor];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0f];
[[self layer] setFillMode:kCAFillModeForwards];
[self setTransform:CGAffineTransformMakeScale(2.0, 2.0)];
[self setTransform:CGAffineTransformMakeRotation(M_PI / 4)];
[[self layer] setBackgroundColor:color];
[UIView commitAnimations];
答案 0 :(得分:2)
[self setTransform:CGAffineTransformMakeScale(2.0, 2.0)];
[self setTransform:CGAffineTransformMakeRotation(M_PI / 4)];
第2行会覆盖第1行的效果。您应构建整个转换,然后将其应用于您的视图:
CGAffineTransform tr = CGAffineTransformMakeScale(2.0f,2.0f);
tr = CGAffineTransformRotate(tr, M_PI/4);
[self setTransform: tr];