我使用计时器和动画块移动图像视图。同时用户可以点击这些视图(按钮)中的一些,然后我有一些动画块开始移动/调整大小/旋转不同的图像视图。
更改视图的alpha并为视图提供新的CGpoint非常适合我,但调用uiview.transform函数调整大小或旋转似乎会将我的所有视图重置为其起始位置(来自故事板)。
我真的很想能够在动画块中使用这个变换功能,但如果我不能以某种方式绕过这个重置,那对我来说这不是一个可行的选择。
示例代码:
- (void)moveGust:(NSTimer*) timer
{
if(centerCloud1.x >= 1100)
{
centerCloud1.x = -79;
gustOutlet.center = centerCloud1;
}
if(centerCloud2.x >= 1100)
{
centerCloud2.x = -79;
cloudOutlet.center = centerCloud2;
}
centerCloud1 = gustOutlet.center;
centerCloud1.x = round(centerCloud1.x+10);
centerCloud2 = cloudOutlet.center;
centerCloud2.x = round(centerCloud2.x+8);
[UIView animateWithDuration:2 delay:0 options:UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionCurveLinear animations:^(void){
gustOutlet.center = centerCloud1;
cloudOutlet.center = centerCloud2;
}completion:^(BOOL Finished){ }];
}
- (IBAction)signAction:(id)sender {
[UIView animateWithDuration:0 animations:^(void) {
signTop.transform = CGAffineTransformScale(signTop.transform, 1.1, 1.1);
}];
}
有什么想法吗? 谢谢!
答案 0 :(得分:0)
需要使用CGAffineTransformConcat()连接连续转换。
当您将视图的变换设置为等于新变换时,您可以有效地“撤消”以前的变换。要进行一系列转换,请使用上述方法将它们连接起来。