2016-04-26 8 views
1

私はviewDidLoad()のUITableViewのヘッダは(beginUpdatesに非表示になります)スウィフト

let headerView = tableView.dequeueReusableCellWithIdentifier("HeaderView") as! HeaderView 
tableView.tableHeaderView = headerView 

にそのtableHeaderViewプロパティを設定していコントローラにUITableViewを持って、私はtableView.beginUpdates()/tableView.endUpdates() OR tableView.reloadData()呼び出すまで、すべてが、うまく動作します。ヘッダースペースはまだ存在しますが、コンテンツは空白になります。

私は間違っていますか?提案してください。

+0

tableHeaderViewは隠しのUITableViewのスクロール時にコールする必要がありますか?あなたはscrollViewの中にUITableViewを持っていますか? – Hasya

+0

headerView = tableView.dequeueReusableCellWithIdentifier( "HeaderView")を!ヘッダービュー ヘッダービューとしてデキューセルがどういう意味ですか? –

+0

ヘッダーを動的に返すには、デリゲートメソッド 'viewForHeaderInSection'を使用する必要があります。 – vadian

答えて

0

== EDITED 2016年10月12日==

あなたはヘッダビューをデキューべきではありません。代わりに、ビューのプロパティを持っているし、あなたのテーブルビューのためのheaderviewように、そのビューを割り当てる:

class SomeViewController: UIViewController { 
    // MARK: - Outlets 
    @IBOutlet var tableView: UITableView! 

    // MARK: - Properties 
    var headerView: UIView! 

    // MARK: - Lifecycle Methods 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     headerView = HeaderView() 
     tableView.headerView = headerView 
    } 
} 

== ORIGINAL ANSWER - あなたはのviewDidLoad上headerviewを置くべきではありません

QUESTIONの==には対応していません。代わりにデリゲートのヘッダーを作成して返します(以下のコードではセクションが1つあると仮定しています)。重要

:あなたはdequeueReusableHeaderFooterViewWithIdentifierませdequeueReusableCellWithIdentifier

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    let headerView = tableView.dequeueReusableHeaderFooterViewWithIdentifier("HeaderView") as! HeaderView 
    return headerView 
} 
+0

質問はセクションのヘッダーではなく 'tableHeaderView'に関するものです。 – Andrespch

+0

@Andrespchそうですね。答えを更新しました。 – oyalhi

関連する問題