Вращающийся NSImageView вызывает масштабирование NSImageView - PullRequest
1 голос
/ 09 января 2011

Я использую следующий код для поворота NSImageView (на самом деле три сложенных друг на друга), вращение работает нормально, но изображение поворачивается вверх и вниз при вращении.Зачем?и как я могу это исправить?

- (void)UpdateRotate:(CGPoint)mouseLoc{

mouseLoc.y = mouseLoc.y - 200;

CGPoint playerMid = CGPointMake(prect.xPos, prect.yPos);

x = mouseLoc.x - playerMid.x;
y = mouseLoc.y - playerMid.y;
double priorResult = rot;
rot = atan2(y,x) * 180 / PI;

[image rotateByAngle:-priorResult];
[image rotateByAngle:rot];
[image setNeedsDisplay:YES];
[WeaponImage rotateByAngle:-priorResult];
[WeaponImage rotateByAngle:rot];
[WeaponImage setNeedsDisplay:YES];
[ShieldImage rotateByAngle:-priorResult];
[ShieldImage rotateByAngle:rot];
[ShieldImage setNeedsDisplay:YES];
}

Решено!

вместо вращения каждого NSImageView я просто повернул весь NSView, содержащий все ImageViews = D

Код:

[self setFrameCenterRotation:-priorResult];
[self setFrameCenterRotation:rot];
[self setNeedsDisplay:YES];

Ответы [ 2 ]

3 голосов
/ 29 декабря 2012

Использование:

[anImageView setFrameCenterRotation:angleInDegrees];
1 голос
/ 09 января 2011

Возможно, вызов - (void) setImageScaling: (NSImageScaling) newScaling;с NSImageScaleNone, чтобы отключить масштабирование?

...