Я создаю приложение с помощью Spritekit, я использую UISwipeGestureRecognizer для переключения между сценами.
Теперь в моем приложении будет много сцен, основанных на одном и том же коде, и жест смахивания работает хорошо, за исключением того, что когда я добавляю третью или четвертую сцену, у меня возникает много задержек смахивания.
Я не уверен, связано ли это с тем, что я использую слишком много сцен, или с тем, что каждая сцена использует фоновое изображение.
Свайп работает, но со значительными задержками.
Я единственный, кто получает эту проблему? Кто-нибудь нашел обходной путь для такого отставания?
Любая помощь будет оценена по достоинству.
Вот пример кода, используемого для 1 сцены.
Спасибо
#import "Ep1Slide1.h"
#import "Ep1Slide2.h"
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
self.backgroundColor = [SKColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
CGImageRef backgroundCGImage = [UIImage imageNamed:@"backgroundImage1"].CGImage;
SKTexture *backgroundTexture = [SKTexture textureWithCGImage:backgroundCGImage];
SKSpriteNode *someNode = [SKSpriteNode spriteNodeWithTexture:backgroundTexture];
someNode.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
[someNode setScale:0.5f];
[self addChild:someNode];
}
return self;
}
- (void)didMoveToView:(SKView *)view{
UISwipeGestureRecognizer *leftSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action: @selector(leftFlip:)];
[leftSwipe setDirection:UISwipeGestureRecognizerDirectionLeft];
[self.view addGestureRecognizer:leftSwipe];
}
- (void)leftFlip:(id)sender{
SKView * skView = (SKView *)self.view;
SKScene * scene = [Ep1Slide2 sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
[skView presentScene:scene transition:[SKTransition pushWithDirection:SKTransitionDirectionLeft duration:1.2]];
}