UIView变换工作很奇怪

时间:2014-03-28 02:27:11

标签: ios objective-c uiview transform cgaffinetransform

我使用此代码移动我的视图

[UIView animateWithDuration:0.3 animations:^{
    [MyView setTransform:CGAffineTransformMakeTranslation(260, 0)];
} completion:^(BOOL finished) {
}];

MyView是self.view的子视图

我想用260

将它移到右边

但它首先会向左移动130而没有动画

然后使用260和animate

向右移动

我不知道为什么MyView首先向左移动?

2 个答案:

答案 0 :(得分:0)

我想问题是MakeTranslation函数让你的视图在动画到新变换之前重置它的位置。

试试这个:

[UIView animateWithDuration:0.3 animations:^{
    [MyView setTransform:CGAffineTransformTranslate(myView.transform, 260, 0)];
} completion:^(BOOL finished) {
}];

答案 1 :(得分:0)

问题是您正在使用自动布局。对于简单的动画,尝试关闭故事板中的自动布局。

您的动画应该按预期工作。