Uitableview 将小UIView添加到场景中

Uitableview 将小UIView添加到场景中,uitableview,swift,sprite-kit,Uitableview,Swift,Sprite Kit,我有一个正在开发的Swift+SpriteKit游戏,我想将一个小型UITableViewController插入一个小型(100 x 200)UIView,然后将该视图添加到我的场景中。我正在使用以下代码: class BugsScene: SKScene { override func didMoveToView(view: SKView) { anchorPoint = CGPoint(x: 0.5, y: 0.5) NSUserDefault

我有一个正在开发的Swift+SpriteKit游戏,我想将一个小型UITableViewController插入一个小型(100 x 200)UIView,然后将该视图添加到我的场景中。我正在使用以下代码:

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添加到更大的场景中?

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

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)


    }

它可能会被改进一些,但这对我来说是有效的。现在,如果我只能想出如何删除视图时,我过渡到另一个场景

更改视图的框架属性因此在上面的代码中,我在初始化UIView时设置了它的框架。你的意思和这个不同吗?将较小视图的框架与init分开设置似乎没有任何影响。@learncoso2d您的评论完全无效。我的问题是,我未能设置导航控制器的框架,而tableview位于该框架中。把这变成一个答案,我会选择正确的。谢谢你能给我看一下你的table类吗,因为我遵循了这个方法,但是表没有出现,UIView和Nav显示。你好Abdou023。由于有人问我这个问题,我最终在SpriteKit中重新编写了所有内容,并且不再在我的SpriteKit应用程序中使用任何UIKit元素。这两者不能很好地结合在一起。所以,您使用SpriteKit框架替代了UITableView?我希望如此!我不记得我是如何修改我正在开发的应用程序,使其不使用UITableView的,但至少这是我做出的决定。我已经很长时间没有使用该应用程序了。然而,SpriteKit肯定会从一些更有用的UIKit元素的等价物中获益。UIScrollView,有人吗?多行标签?SpriteKit中缺少太多内容。要从场景中删除视图,请在更改场景之前添加行
view.removeFromSuperview()