我有一个UISplitViewController。所以我希望看到我的主视图(即表格视图)达到其内容的大小(考虑它只有3个元素)。 我尝试使用self.tableview.contentsize但没有成功。请帮我找到解决方案。
每个单元格的高度为44。 这是我写的代码。
class AccountTableViewController: UITableViewController {
var filterList = [String]()
var selectedIndex = -1
override func viewDidLoad() {
super.viewDidLoad()
filterList = ["All Accounts","Business Accounts","Person Accounts"]
self.tableView.contentSize = CGSize(width: 600, height: 44*3);
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return 3
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("accountCell", forIndexPath: indexPath)
cell.textLabel?.text = filterList[indexPath.row]
return cell
}}
答案 0 :(得分:3)
我抓住Ray Wenderlich的示例项目(https://www.raywenderlich.com/94443/uisplitviewcontroller-tutorial-getting-started)作为起点。这就是你在下面的图片中看到的修改。
在Interface Builder中,首先确保您的设置使用AutoLayout:
然后在原型单元格下面拖动一个UIView
(我将背景设置为橙色以便您可以看到它的位置),并根据您的喜好制作尺寸:
我向刚刚创建的新UIView
添加了一些字段,并添加了约束,以便您可以看到它们在运行时根据内容移动。 (你会注意到故事板视图控制器在IB中比在运行时宽得多。)这是我添加的约束:
一旦你使这个基本部分工作,你就可以在代码中配置视图的大小。如果需要,您可以在IB中设计视图,或者在代码中设置视图 - 无论您喜欢什么。
以下是表中只有一行的示例:
这是一个表中没有行的例子: