将一个小的UIView添加到SKScene

时间:2014-09-01 05:58:43

标签: uitableview swift sprite-kit

我正在开发一个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 个答案:

答案 0 :(得分: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)


    }

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