2016-04-18 20 views
0

私のheaderViewの幅は画面の幅に適応しません。 マイviewForHeaderInSection機能:私はセクション内の行の隠れているので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の(または類似したもの)にセルを追加する必要があります。 私の意見では、いくつかの制約をプログラム的に「表示」する必要がありますが、どういうわけかわかりません。

+0

私はここでのことを扱う別のアプローチに答えましたが、私はあなたの問題があると思います。ビューのサブビューとして 'cell'を追加していますが、代わりに' cell.contentView'を追加する必要があります。また、 'cell.constraints'の代わりに' cell.contentView.constraints'を使用します。 – farzadshbfn

答えて

0

customView: UITableViewHeaderFooterViewクラスを定義し、それが正しい方法であるとして、ビューコントローラのviewDidLoad:に(UITableViewHeaderFooterViewデキュー、

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

、代わりのセルをデキューを書くのに役立ちます

希望それをするために)。

あなたは私はこのライブラリを使用することをお勧めこのアプローチを使用している場合は、ペン先での作業や、物事のすべての種類を扱う、コード内で自動レイアウトを追加したり、のnibファイルでそれを定義する必要があり、この方法では、ちょっとイライラさせられるNibDesignable

+0

この方法は[このページ](http://samwize.com/2015/11/06/guide-to-customizing-uitableview-section-header-footer/)で説明されていますが、これは私に与えますいくつかの警告とエラー、私はこれを動作させることができません –

+0

どのような種類のエラー? – farzadshbfn

+0

"NIBをバンドルでロードできませんでした"と何が問題なのか説明できません –

0

と同じ幅のtableviewと高さを定義する必要があります。セルの高さや幅を与えないでください。 storyborardをUI用に使用している場合、uviewを上側のtableviewにドラッグすると、自動的にheaderviewとして設定され、top,leading,trailing and fix heigth constraintsとなり、viewForHeaderInSectionメソッドを削除します。これは:)

+0

この作品ですが、私はviewForHeaderInSectionが必要です。なぜなら、私は多くの動的に作成されたセクションを一つのテーブルビューで別々のテキストで表示していますし、UITapGestureRecognizerをこのセクションを拡大または縮小します –

関連する問題