0

私の headerView の幅は、画面の幅に適応しません。私のviewForHeaderInSection機能:

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let cell = self.tableView.dequeueReusableCellWithIdentifier("sectionCell") as! sectionCell
    cell.hint.text = "some name"

    cell.tag = section


    let singleTap = UITapGestureRecognizer(target: self, action: #selector(singleTapOnSection(_:)))

    cell.addGestureRecognizer(singleTap)

    let view = UIView(frame: cell.frame)

    view.addConstraints(cell.constraints)

    view.addSubview(cell)

    return view
}

セクションの行が非表示になっているため、UIView (または同様のもの) にセルを追加する必要があります。私の意見では、プログラムでいくつかの制約を「表示」する必要がありますが、方法がわかりません

4

2 に答える 2

0

customView: UITableViewHeaderFooterViewクラスを定義しviewDidLoad:、View Controller の書き込み

tableView.registerClass(customView.classForCoder(), forHeaderFooterViewReuseIdentifier: "HeaderIdentifier")

そして、セルをデキューする代わりに、a をデキューしますUITableViewHeaderFooterView(これが正しい方法です)。

この方法では、自動レイアウトをコードに追加するか、 nibファイルで定義する必要があり、 nibを操作してあらゆる種類のものを処理するのはちょっとイライラします。このアプローチを使用している場合は、このライブラリNibDesignableを使用することをお勧めします。

于 2016-04-18T18:16:59.793 に答える
0

headerview必要なものと同じ幅tableviewと高さで定義する必要があります。セルの高さや幅を指定しないでください。ui に Storyborard を使用している場合は、上部の tableview に uiview をドラッグすると、headerview として自動的に設定され、メソッドを提供top,leading,trailing and fix heigth constraintsおよび削除しviewForHeaderInSectionます。

これが役立つことを願っています:)

于 2016-04-18T18:08:32.323 に答える