1

私は大きなプロジェクトに取り組んでいNSMatrixますNSImageCells。セル内の特定の個人を回転させる必要がありますImages(または、同じように見えるため、セル自体を回転させるだけでもかまいません)。すべてのセルと画像は40x40の正方形であるため、90度の増分に固執するため、サイズを変更する必要はありません。問題は、NSImageCellsの代わりにを使用しているため、画像を簡単に回転させるためにNSImageViews使用できないことです。setFrameCenterRotation:誰かが私がこれを達成する方法を知っていますか?

4

1 に答える 1

1

ASOCでこれを書いているので、これを行う方法をまだ探している人のために、私はこのコードを使用することになりました:

on rotateImage_byAngle_(startingImage, angle)
    set rotated to current application's NSImage's alloc()'s initWithSize_({startingImage's |size|()'s height(), startingImage's |size|()'s |width|()})
    rotated's lockFocus()
    set transform to current application's NSAffineTransform's transform()
    transform's translateXBy_yBy_((rotated's |size|()'s |width|()) / 2, (rotated's |size|()'s height()) / 2)
    transform's rotateByDegrees_(angle)
    transform's translateXBy_yBy_(-(rotated's |size|()'s height()) / 2, -(rotated's |size|()'s |width|()) / 2)
    transform's concat()
    startingImage's drawAtPoint_fromRect_operation_fraction_({0, 0}, {{0, 0}, {0, 0}}, current application's NSCompositeCopy, 1)
    rotated's unlockFocus()
    return rotated
end rotateImage_byAngle_
于 2012-04-28T18:02:15.177 に答える