2013-03-07 3 views
0

Когда я поворачиваю изображение, он перемещается вправо. Это не должно. Кажется, что центр установлен в неправильную точку. Смотрите скриншот: В обоих состояниях - вращение и не - центр «+» не должен меняться.UIImage перемещается прямо на вращение - неправильная точка центра?

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) { 
       } 
]; 

Как же двигаться прямо на вращение и как я могу избежать этого?

+0

Если положение изображения не является (0,0), он не будет вращаться от его центра, но от начала системы координат. –

+0

@RamyAlZuhouri Он добавляет преобразование в 'addIconImageView', используя систему координат' addIconImageView'. То, что вы упомянули, было бы проблемой только в том случае, если он использовал свойство преобразования super view. –

ответ

1

Мое первое предположение заключается в том, что ваш объект изображения не является абсолютно квадратным.

Изменить размер AddCardIcon.png так, чтобы он имел одинаковую ширину и высоту и не имеет прозрачной прокладки на любой стороне.

В противном случае вручную определить центр + и установить addIconImageView.layer.anchorPoint

+0

изображение определенно квадратное. – Bernd

+0

Действительно ли центр '+' находится в точном центре квадратного изображения? –

+0

Да, это так. И это правда, что addIconImageView.center.x меняется после вращения (с 165.0 до 172.424622), но это действительно не должно. Хм. – Bernd

Смежные вопросы