嗨我有一个带有两个静态单元格的TableViewController
,但是当显示时,它会显示两个静态单元格,然后显示tableview的所有其他空单元格。但是我不想显示那些细胞,因为它们没用。如何将其余单元隐藏在两个静态单元之外?
答案 0 :(得分:318)
在viewDidLoad()
函数中添加以下代码行:
tableView.tableFooterView = UIView()
答案 1 :(得分:8)
答案 2 :(得分:6)
要添加此功能,将tableFooterView
设置为UIView()
的行会删除行的原因是因为您要为属性设置一个空的UIView()
对象。根据Apple文档:
var tableFooterView: UIView?
因此,设置空的UIView()将不会在此属性的数据下方显示任何内容。
您可以通过将tableFooterView
重置为默认值来恢复空行,如下所示:
tableView.tableFooterView = nil
答案 3 :(得分:5)
设置tableFooterView
应该会删除多余的单元格,例如视图。
@IBOutlet weak var tableView: UITableView! {
didSet {
tableView.tableFooterView = UIView(frame: .zero)
}
}
答案 4 :(得分:3)
Swift 4 详细说明HorseT的答案,首先控制从故事板中的表视图拖动到View Controller类,然后创建一个名为tableView的插座。
@IBOutlet weak var tableView: UITableView!
然后,View Controller中的viewDidLoad应如下所示:
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
tableView.tableFooterView = UIView()
}
答案 5 :(得分:2)
您也可以在Storyboard中实现这一点,只需将视图拖动到表格视图的页脚区域,然后使用属性检查器将其高度和背景颜色设置为1并分别清除。
(这假设您出于某种原因不能或不想仅使用组样式设置。否则,只需这样做。)
答案 6 :(得分:1)
tableView.tableFooterView = UIView.init(frame: CGRect.zero)
在viewWillAppear
方法中调用此代码。并将工作
答案 7 :(得分:1)
基于 swift 中的上述答案。
tableView.tableFooterView = UIView(frame: .zero)
答案 8 :(得分:1)
如果您要删除应用中所有UITableViews
的行,只需添加一个扩展名,如下所示:
Swift 4.0
extension UITableView {
override open func didMoveToSuperview() {
super.didMoveToSuperview()
self.tableFooterView = UIView()
}
答案 9 :(得分:0)
只需添加:
tableView.tableFooterView = UIView()
说明:
这是完全有效的,并且在swift 3中工作得很好。因为你要为属性设置一个空的UIView()对象,所以将tableFooterView设置为UIView()会删除这些行。
答案 10 :(得分:0)
在“ 替代函数viewDidLoad()”或“替代函数viewWillAppear(_bool动画)”功能中添加以下代码。
tblOutletName.tableFooterView = UIView()
答案 11 :(得分:-2)
我尝试了tableview.tableFooterView = UIView()并且它对我不起作用。我正在使用自定义TableViewViewCell,也许这就是原因。
我确实找到了一个黑客。在我的函数numberOfRowsInSection
中func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return yourArrayClass.count - 1
}
这使得我的额外空白自定义UITableViewCell不再显示。当然这是多余的空白。我将通过添加更多单元格来测试它。作为参考,我在cellForRowAt函数中使用Swift 3,Firebase,一个自定义单元类。
答案 12 :(得分:-2)
在swift 4中,您可以使用简单的一行代码删除那些不必要的行:
//tableview refers to your UITableView
tableView.separatorStyle = .none
答案 13 :(得分:-2)
Abobe anwer是对的。我们可以通过添加
来实现这一目标tableView.tableFooterView = UIView() // to remove extra cells in tableView