UIImage在旋转时向右移动 - 错误的中心点?

时间:2013-03-07 19:19:55

标签: ios objective-c animation uiview autolayout

当我旋转图像时,它向右移动。它不应该。似乎中心设置错误了。参见屏幕截图:在两种状态下 - 旋转而不是 - “+”的中心不应改变。

enter image description here

我使用这样的自动布局定位UIImageView:

- (void)viewDidLoad {
...

addIconImageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"AddCardIcon.png"]];
[addIconImageView setContentMode:UIViewContentModeCenter];
[addIconImageView setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.view addSubview:addIconImageView];



[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[addIconImageView]-(10)-|"
                                                                  options:nil
                                                                  metrics:nil
                                                                    views:NSDictionaryOfVariableBindings(addIconImageView)]];

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat: @"V:|-[addIconImageView]-|"
                                                                  options:NSLayoutFormatAlignAllCenterY
                                                                  metrics:nil
                                                                    views:NSDictionaryOfVariableBindings(addIconImageView)]];

...
}

以下是旋转图像的方法

[UIView animateWithDuration:0.2
                 animations:^{
                     addIconImageView.transform = CGAffineTransformRotate(addIconImageView.transform, M_PI/4);
                 } completion:^(BOOL finished) {
                 }
 ];

如何在轮换中采取行动,我该如何避免轮换?

1 个答案:

答案 0 :(得分:1)

我的第一个猜测是你的图像资产不是完全正方形。

调整AddCardIcon.png的大小,使其具有相同的宽度和高度,并且在任何一侧都没有任何透明填充。

否则,手动确定+的中心并设置addIconImageView.layer.anchorPoint