Вращение 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_
Другие вопросы по тегам