Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.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
Ios CGAffineTransformRotate在执行旋转之前移动对象_Ios - Fatal编程技术网

Ios CGAffineTransformRotate在执行旋转之前移动对象

Ios CGAffineTransformRotate在执行旋转之前移动对象,ios,Ios,我正在尝试使用cGraffineTransformRotate为UIButton的变换设置动画,当它正确执行动画时,它会在执行之前将按钮向下和向左移动大约15像素。以下是执行动画转换的代码: [UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionTransitionNone animations:^{ self.addCloseBut

我正在尝试使用
cGraffineTransformRotate
UIButton
的变换设置动画,当它正确执行动画时,它会在执行之前将按钮向下和向左移动大约15像素。以下是执行动画转换的代码:

[UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionTransitionNone
                 animations:^{
                     self.addCloseButton.transform = CGAffineTransformRotate(self.addCloseButton.transform, degreesToRadians(45));
                 }
                 completion:nil];
当我反转变换时,它会做相同的事情,只是它会在设置动画之前将其移回原始位置(向上15像素,向右15像素),我使用以下代码执行此操作:

[UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionTransitionNone
                 animations:^{
                     self.addCloseButton.transform = CGAffineTransformIdentity;
                 }
                 completion:nil];

为什么会发生这种转变?该按钮是使用interface builder创建的,即使我将动画持续时间设置得更高或添加了延迟,转换也会立即发生。

我发现:在我的xib上选择“使用自动布局”(这会添加一系列自动约束)会在尝试使用变换时把事情搞砸。关闭它修复了我的问题。

我发现:在我的xib上选择“使用自动布局”(这会添加一系列自动约束)会在尝试使用转换时把事情搞砸。关闭它修复了我的问题。

可以在仍然使用自动布局和故事板的情况下修复此问题。请参阅我对这个问题的回答:

可以在仍然使用自动布局和故事板的情况下修复此问题。请参见我关于这个问题的回答:

除非您对底层应用某种
位置
主播点
调整,否则我敢打赌您的按钮只是偏离中心。不过,我在视图中放置的任何ui元素都会发生这种情况。我试着在那里扔一个基本的UIImage,然后应用相同的转换,它也跳了下来。按钮偏离中心意味着什么?除非您对底层应用某种
位置
主播点
调整,否则我打赌您的按钮只是偏离中心。不过,我在视图中放置的任何ui元素都会发生这种情况。我试着在那里扔一个基本的UIImage,然后应用相同的转换,它也跳了下来。按钮偏离中心意味着什么?我希望有更好的答案。虽然关闭约束可能会解决仿射变换的特定问题,但它引入了新问题,即无法在不同屏幕大小中正确布局。难道没有“两全其美”的解决方案吗?我希望有更好的答案。虽然关闭约束可能会解决仿射变换的特定问题,但它引入了新问题,即无法在不同屏幕大小中正确布局。难道没有“两全其美”的解决方案吗?