首页 文章

将一个小的UIView添加到SKScene

提问于
浏览
2

我正在开发一个Swift SpriteKit游戏,其中我想在一个小的(100 x 200)UIView中插入一个小的UITableViewController,然后将该视图添加到我的SKScene中 . 我正在使用此代码:

class BugsScene: SKScene {

    override func didMoveToView(view: SKView) {

        anchorPoint = CGPoint(x: 0.5, y: 0.5)

        NSUserDefaults.standardUserDefaults().setObject("bugs", forKey: "lastSceneViewed")

        let bugsTableView: BugsTVC = BugsTVC()
        let nav = UINavigationController(rootViewController: bugsTableView)

        let smallerRect = CGRectMake(0, 0, 100, 200)
        let smallerView = UIView(frame: smallerRect)
        smallerView.addSubview(nav.view)
        self.view.addSubview(smallerView)
    }
}

但是,在横向模式下(我的应用程序仅支持横向左侧和右侧横向,无纵向),tableview占据横向模式的整个高度,并且纵向具有iPad的宽度 .

如何在swift / spritekit中将更小的UIView添加到更大的场景?

1 回答

  • 1

    LearnCocos2D绝对值得称赞,所以如果他发布了答案,我会接受它 . 基本上,我没有为导航控制器的视图设置框架 . 这是我将较小的视图添加到场景的方法:

    override func didMoveToView(view: SKView) {
    
            anchorPoint = CGPoint(x: 0.5, y: 0.5)
    
            self.name = "Bugs Scene"
            backgroundColor = bugsColor
    
            let smallerRect = CGRectMake(400, 24, 600, 720)
            let navRect = CGRectMake(0, 0, 600, 720)
            let bugsTableView: BugsTVC = BugsTVC()
            nav = UINavigationController(rootViewController: bugsTableView)
            nav.view.frame = navRect
            smallerView = UIView(frame: smallerRect)
            smallerView.backgroundColor = UIColor.clearColor()
    
            bugsTableView.view.frame = smallerRect
            smallerView.frame = smallerRect
            smallerView.addSubview(nav.view)
            self.view.addSubview(smallerView)
    
    
        }
    

    它可能会被改进一些,但这对我有用 . 现在,如果我只能在转换到另一个场景时弄清楚如何移除视图!

相关问题