每当我将特定节点作为一个小窗口单击时,我希望TableViewController出现在场景中。我创建了一个TableViewController类来配置它。这是我在SkScene中的代码:
let table = Table()
let smallerRect = CGRectMake(100, 100, 200, 100)
let navRect = CGRectMake(0, 100, 200, 200)
let nav = UINavigationController(rootViewController: table)
nav.view.frame = navRect
let frameView = UIView(frame: smallerRect)
frameView.backgroundColor = UIColor.redColor()
table.view.frame = smallerRect
frameView.addSubview(nav.view)
self.view.addSubview(frameView)
表类:
import UIKit
class Table: UITableViewController {
var names = ["name1", "name2", "name3"]
override func viewDidLoad() {
super.viewDidLoad()
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return names.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
cell.textLabel?.text = names[indexPath.row]
return cell
}
}
问题是应该包含tableview的UIView出现,但表本身并不存在。 我会感激任何帮助,或者即使有人有更好的方法来实现我想要的东西。
答案 0 :(得分:0)
您应该根据frameView的 界限 设置navViews / tableview框架。
哪个是(0,0,200,200)。目前正在发生的事情是,当您的表被添加为帧视图的子视图时,它会偏移100.因此它被绘制在帧视图边界之外。
这样的事可能。
let table = Table()
let smallerRect = CGRectMake(100, 100, 200, 100)
let navRect = CGRectMake(0, 0, 200, 200)
let nav = UINavigationController(rootViewController: table)
nav.view.frame = navRect
let frameView = UIView(frame: smallerRect)
frameView.backgroundColor = UIColor.redColor()
table.view.frame = frameView.bounds
frameView.addSubview(nav.view)
self.view.addSubview(frameView)
如果没有Table
代码,很难知道在哪里可以使用它。