【发布时间】:2014-01-04 19:46:52
【问题描述】:
我一直在尝试自学 Objective-C,但在视图方面遇到了一些问题。
将所有内容从 viewWillLayoutSubviews 移动到 viewDidLoad 后,我的场景无法呈现。 MyScene.m 中的代码正在运行,我只是看不到它。我在这里遗漏了一些明显的缺陷吗?
之前的viewWillLayoutSubviews 方法在下面可用。这里的所有内容都直接切入viewDidLoad,不包括[super viewDidLayoutSubviews]。
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
SKView * skView = (SKView *)self.view;
if (!skView.scene)
{
skView.showsFPS = YES;
skView.showsNodeCount = YES;
SKScene * scene = [MyScene sceneWithSize:skView.bounds.size];
scene = [MyScene sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
[skView presentScene:scene];
}
UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:(scene) action:@selector(screenSwipedRight)];
swipeRight.numberOfTouchesRequired = 1;
swipeRight.direction=UISwipeGestureRecognizerDirectionRight;
[self.view addGestureRecognizer:(swipeRight)];
UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:(scene) action:@selector(screenSwipedLeft)];
swipeLeft.numberOfTouchesRequired = 1;
swipeLeft.direction=UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:(swipeLeft)];
UISwipeGestureRecognizer *swipeUp = [[UISwipeGestureRecognizer alloc] initWithTarget:(scene) action:@selector(screenSwipedUp)];
swipeUp.numberOfTouchesRequired = 1;
swipeUp.direction=UISwipeGestureRecognizerDirectionUp;
[self.view addGestureRecognizer:(swipeUp)];
}
如果有帮助,我将所有内容从 viewWillLayoutSubviews 移至 viewDidLoad,以避免在每次视图旋转时重新创建手势识别器。
感谢您的帮助!
【问题讨论】:
标签: ios objective-c ios7 sprite-kit