Увеличить и прокрутить SKNode в SpriteKit

Я работаю над такой игрой, как Scrabble на SpriteKit, и застрял на Zooming and Scrolling the Scrabble Board. Сначала позвольте мне объяснить, как работает игра: на моей игровой сцене:

Подкласс SKNode с именем GameBoard Layer (с именем NAME_GAME_BOARD_LAYER), содержащий следующие дочерние элементы:

A SKNode subclass for Scrabble Board named NAME_BOARD.
A SKNode subclass for Letters Tile Rack named NAME_RACK.

Письма Плитки берутся со Стеллажа для плитки и бросают на доску Эрудит.

Проблема здесь в том, что мне нужно имитировать масштабирование и прокрутку, которые могут быть достигнуты с помощью UIScrollView, который, я думаю, не может быть добавлен в SKNode. Особенности, которые мне нужно имитировать:

Увеличьте масштаб в точном месте, где пользователь дважды нажалПрокрутка (Tried PanGestures, как-то создает проблему с перетаскиванием плиток)Держите увеличенный SKNode в определенной области (подобно тому, как UIScrollView сохраняет увеличенное содержимое в границах scrollView)

Вот код, который я использовал для масштабирования с использованием UITapGestures:

В моей GameScene.m

- (void)didMoveToView:(SKView *)view {
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self
                                                                             action:@selector(handleTapGesture:)];
tapGesture.numberOfTapsRequired = 2;
tapGesture.numberOfTouchesRequired = 1;
[self.scene.view addGestureRecognizer:tapGesture];
}

- (void)handleTapGesture:(UITapGestureRecognizer*)recognizer {
if ([self childNodeWithName:NAME_GAME_BOARD_LAYER]) {
    GameBoardLayer *gameBoardLayer = (GameBoardLayer*)[self childNodeWithName:NAME_GAME_BOARD_LAYER];

    SKNode *node = [Utils nodeAt:[recognizer locationInView:self.view]
                        withName:NAME_BOARD
                   inCurrentNode:gameBoardLayer];

    if ([node.name isEqualToString:NAME_BOARD]) {
        [gameBoardLayer handleDoubleTap:recognizer];
    }

}
}

В моем узле GameBoardLayer:

- (void)handleDoubleTap:(UITapGestureRecognizer*)recognizer {
Board *board = (Board*)[self childNodeWithName:NAME_BOARD];
if (isBoardZoomed)
{
    [board runAction:[SKAction scaleTo:1.0f duration:0.25f]];
    isBoardZoomed = NO;
}
else
{
    isBoardZoomed = YES;
    [board runAction:[SKAction scaleTo:1.5f duration:0.25f]];
}
}

Может ли кто-нибудь помочь мне с этой функциональностью?

Спасибо всем.

Ответы на вопрос(1)

Ваш ответ на вопрос