0

画像を回転させると、右に移動します。すべきではありません。センターが間違ったポイントに設定されているようです。スクリーンショットを参照してください: 回転した状態と回転していない状態の両方で、「+」の中心は変化しません。

ここに画像の説明を入力

次のような自動レイアウトを使用して 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) {
                 }
 ];

ローテーションで右に移動するのはなぜですか?どうすれば回避できますか?

4

1 に答える 1

1

私の最初の推測は、画像アセットが完全に正方形ではないということです。

AddCardIcon.png のサイズを変更して、幅と高さが同じになり、いずれの側にも透明なパディングがないようにします。

それ以外の場合は、+ の中心を手動で決定して設定しますaddIconImageView.layer.anchorPoint

于 2013-03-07T19:22:44.743 に答える