SKSceneにUIButtonを追加(addSubview)しても表示されないのはなぜか?
■バージョン
swift 4
■やりたいこと/質問
MenuPageScene.swift(下記に詳細を記載)にUIButtonを追加したい
現状下記コードでは追加できていない状況です。
追加したいのですが、下記コードに問題があるのか、そのほかの設定等で失念していることがあるのか、swift4ではできないのかがわかりません。
ご回答お待ちしております。
.sksファイルとの連携はできており、MenuPageScene.sksにColor Spriteを
追加するとシミュレータに表示されます。MenuPageScene.sksのCustom Classには
MenuPageSceneを設定しています。
■ファイル構成
MenuPageViewController.swift
MenuPageScene.swift
MenuPageScene.sks:CustomeClassにMenuPageSceneを設定
■ソースコード
MenuPageViewController.swift
import Foundation
import UIKit
import SpriteKit
import GameplayKit
class MenuPageViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if let scene = SKScene(fileNamed: "MenuPageScene") {
// Set the scale mode to scale to fit the window
scene.scaleMode = .aspectFill
// Present the scene
view.presentScene(scene)
}
view.ignoresSiblingOrder = true
view.showsFPS = true
view.showsNodeCount = true
}
}
・・・以下省略
MenuPageScene.swift
import Foundation
import SpriteKit
import GameplayKit
import UIKit
class MenuPageScene: SKScene{
let myButton = UIButton()
@objc func onClickMyButton(sender : UIButton){
let rect = SKShapeNode(rect: CGRect(origin: CGPoint(x:50.0,y:50.0),size:CGSize(width:50.0,height:50.0)) )
rect.fillColor = UIColor.red
//rect.position = CGPointMake(self.frame.midX, self.frame.midY)
rect.physicsBody = SKPhysicsBody(rectangleOf:CGSize(width:50.0,height:50.0))
self.addChild(rect)
}
override func didMove(to view: SKView) {
// ボタンを生成.
myButton.backgroundColor = UIColor.red
myButton.layer.masksToBounds = true
myButton.setTitle("Add Block", for: UIControlState.normal)
myButton.setTitleColor(UIColor.white, for: UIControlState.normal)
myButton.setTitle("Done", for: UIControlState.highlighted)
myButton.setTitleColor(UIColor.black, for: UIControlState.highlighted)
myButton.layer.cornerRadius = 20.0
myButton.layer.position = CGPoint(x: -self.view!.frame.width/4, y:-self.view!.frame.height/4)
myButton.addTarget(self, action: #selector(onClickMyButton(sender:)), for: .touchUpInside)
self.view!.addSubview(myButton);
}
・・・以下省略
}