Вращение NSImageCell
Я работаю над проектом, где у меня есть большой NSMatrix
из NSImageCells
, Мне нужно повернуть конкретного человека Images
в их ячейках (или даже просто поверните сами ячейки, так как это будет выглядеть одинаково). Каждая ячейка и изображение имеют размер 40x40, поэтому не нужно изменять их размеры, так как я буду придерживаться шага 90 градусов. Проблема в том, что я использую NSImageCells
вместо NSImageViews
Я не могу использовать setFrameCenterRotation:
легко вращать изображения. Кто-нибудь знает, как мне это сделать?
1 ответ
Решение
Для тех, кто все еще ищет способ сделать это, так как я пишу это в АСОК, я использовал этот код:
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_