2014-09-01 68 views
2

我有一個Swift + SpriteKit遊戲正在開發中,我想在一個小的(100 x 200)UIView中插入一個小的UITableViewController,然後將該視圖添加到我的SKScene中。我使用此代碼:向SKScene添加一個小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添加到更大的場景中?

+0

更改視圖的框架屬性 – LearnCocos2D 2014-09-01 07:38:11

+0

因此,在上面的代碼中,我設置UIView的框架,當我初始化它。你的意思是與此不同嗎?與init分開設置較小視圖的框架似乎沒有影響。 – zeeple 2014-09-01 18:28:20

+0

@ LearnCocos2D您的評論已無效。我的問題是我無法設置tableview所在的導航控制器的框架。將其轉化爲答案,我將其選爲正確。謝謝! – zeeple 2014-09-02 15:13:17

回答

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) 


    } 

它可能可以提煉一些,但這是對我的工作。現在,如果我只能弄清楚如何在轉換到另一場景時刪除視圖!

+0

你能否讓我看看你的表類,因爲我遵循這個方法,但表不出現,UIView和Nav顯示。 – Abdou023 2016-05-31 19:49:01

+0

嗨Abdou023。自從問了這個問題後,我終於重寫了SpriteKit中的所有內容,並且不再在我的SpriteKit應用程序中使用任何UIKit元素。兩人在一起打球不好。 – zeeple 2016-06-02 03:30:29

+0

因此,您使用SpriteKit框架替代了UITableView? – Abdou023 2016-06-02 10:32:15