2016-03-14 52 views
1

我在故事板中创建了UITableView中的三个单元格,当我运行它时,模拟器中有三个单元格,然后是空白区域。我想要做的是让单元根据iOS设备动态填充屏幕。我怎么做?使表格视图单元格在Swift中完全填满屏幕

enter image description here

+0

他们应该是一样的高度吗? – Eric

+0

@Eric我打算添加其他几个单元格,我希望它们均匀对齐以填充屏幕,所以我想回答你的问题 - 是的 – user3395936

回答

4

设置单元格的最小高度,如果只有很少的项目,则使用甚至是hight,否则使用minHeight。

let MinHeight: CGFloat = 100.0 
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    let tHeight = tableView.bounds.height 

    let temp = tHeight/CGFloat(items.count) 

    return temp > MinHeight ? temp : MinHeight 
} 
+0

感谢您的建议,我如何调用表格中的单元格数量?我看到你正在使用'items.count'来获得这个数字 – user3395936

+0

这里的项目是你需要在表中显示的实体,只需将它替换为你自己的对象。如果您不知道“UITableViewDataSource”这个概念,请查看一些UITableViewController教程,例如HTTPS://www.ralfebert。de/tutorials/ios-swift-uitableviewcontroller/ – dichen

+0

完美!非常感谢 – user3395936

1

有没有你正在使用这个UITableView理由吗?如果你要将它放到屏幕上,并且不会有可变数量的可滚动的单元格,那么TableView确实不会给你带来任何实际好处。

如果只是想有3次,每一个与所述屏幕高度的1/3,则可以简单地使用IB来设置每个视图是使用该方法的屏幕的this answer

1 /第三或者如果你想使用自动布局,这是更好的解决方案,你可以使用this technique

+0

我问这个问题的原因是因为当我实际上单击单元格时,它不会给我选择改变尺寸或类似的东西。所有的对齐功能都是灰色的,所以看着你的建议答案,我无法实现其中的任何一个。并回答你的问题:我不打算以编程方式添加单元格,我只想要5个具有相同比例的固定单元格。 – user3395936

+0

如果你必须使用TableView,我会使用@ RWhoot的答案并实现'(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath'如果有5个单元格,它们是否都适合在屏幕上,或者在任何时候只有3个适合,你需要滚动才能看到其余的内容? – wottle

+0

当你说'如果你必须使用TableView',你有什么选择?我的意思是我刚刚在iOS中开发新手,我知道的唯一方法是创建一个UITableView并手动添加单元格 – user3395936

0

在你的UITableViewDataSource设置- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath方法根据UITableView的内容高度的高度来计算行的高度。

+0

感谢您的建议。什么是“UITableViewDataSource”?而且是你在ObjC中提供的代码片段? – user3395936

0

在您的viewDidLoad方法中设置零高度页脚视图。

tableView.tableFooterView = UIView() 
+1

您的建议会移除多余的单元格,但不会像我在问题中所描述的那样对齐单元格。 – user3395936

相关问题