web-dev-qa-db-ja.com

iOSのTableViewControllerで余分な空のセルを削除する方法-Swift

こんにちは、2つの静的セルを持つTableViewControllerがありますが、表示されると、2つの静的セルが表示され、TableViewの他のすべての空のセルが表示されます。ただし、これらのセルは役に立たないので表示したくありません。 2つの静的セル以外の残りのセルを非表示にするにはどうすればよいですか?

96
Stephen Fox

viewDidLoad()関数に次のコード行を追加します。

tableView.tableFooterView = UIView()
333
HorseT

UITableViewを選択し、属性インスペクターに移動して、スタイルをグループ化に変更します。

enter image description here

12
bakalolo

tableFooterViewを設定すると、ビューのような余分なセルが削除されます。

   @IBOutlet weak var tableView: UITableView! {
        didSet {
            tableView.tableFooterView = UIView(frame: .zero)
        }
    }
6
Giang

これに追加するには、tableFooterViewUIView()に設定すると行が削除される理由は、プロパティに空のUIView()オブジェクトを設定しているためです。 Appleドキュメントに従って:

var tableFooterView: UIView?

したがって、空のUIView()を設定すると、このプロパティのデータの下には何も表示されません。

次のようにtableFooterViewをデフォルト値にリセットすることにより、空の行を戻すことができます。

tableView.tableFooterView = nil
6
toast

ストーリーボードでも、ビューをテーブルビューのフッター領域にドラッグするだけでこれを実現できます。その後、プロパティインスペクターを使用して、高さと背景色をそれぞれ1に設定し、クリアします。

(これは、何らかの理由でグループスタイル設定を使用できない、または使用したくないことを前提としています。

3
quickthyme

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()
}
3
elarcoiris

Swiftの上記の回答に基づいています。

tableView.tableFooterView = UIView(frame: .zero)
1
Rizwan Mehboob
tableView.tableFooterView = UIView.init(frame: CGRect.zero)

viewWillAppearメソッド内でこのコードを呼び出します。そして動作します

1
Mannopson

アプリのすべてのUITableViewsの行を削除する場合は、次のような拡張機能を追加します。

Swift 4.0

extension UITableView {

override open func didMoveToSuperview() {
    super.didMoveToSuperview()
    self.tableFooterView = UIView()

}
1
mkhoshpour

Swift 4では、単純な1行のコードでこれらの不要な行を削除できます。

//tableview refers to your UITableView
tableView.separatorStyle = .none
0
TheSwiftGuy77

追加するだけです:

tableView.tableFooterView = UIView()

説明:

これは完全に有効であり、Swiftで完全に機能します。3.Byプロパティに空のUIView()オブジェクトを設定しているため、tableFooterViewをUIView()に設定すると行が削除されます。

0
Tejas