0

を使用UITableViewNSFetchedResultsControllerて、テーブルの内容を更新して表示します。ある時点で、ヘッダービューのない画面が表示されました。セル間のスペースの代わりにする必要があります。

ここに画像の説明を入力

ビュー階層をデバッグすると、次の情報が得られます。UI ビュー階層で選択されたセルは、デバッグ ビュー階層で選択されたセルに適切です。 ここに画像の説明を入力

ここに画像の説明を入力

ヘッダー ビューを作成するには、次の方法を使用します。

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let workday = workDayObjectForSection(section)
    let cell = tableView.dequeueReusableCellWithIdentifier(PBOUserWorkDayCellIdentifier) as! PBOUserWorkDayTableViewCell
    cell.configureCellWithWorkDay(workday)

    return cell
}
4

1 に答える 1

0

メソッドを使用してヘッダーを取得viewしないでください。ドキュメントから:tableViewdequeueReusableCellWithIdentifier

セル オブジェクトが再利用可能な場合、ストーリーボードで再利用識別子 (任意の文字列) を割り当てます。実行時に、テーブル ビューはセル オブジェクトを内部キューに格納します。テーブル ビューがデータ ソースにセル オブジェクトを表示用に構成するように要求すると、データ ソースは dequeueReusableCellWithIdentifier: メッセージをテーブル ビューに送信し、再利用識別子を渡すことで、キューに入れられたオブジェクトにアクセスできます。

つまり、再利用セルとしてヘッダーを返すと、tableViewセルとして別の場所に表示される可能性があります。ヘッダーの動作はセルとは異なることに注意してください。セクションが表示されている間、ヘッダーは上部に留まります。

ただし、ヘッダーには同じビューを使用できますがxibstoryboard毎回などから作成し、再利用識別子を割り当てません。また、最適化を探している場合は、それらを配列に格納して、キャッシュされた値を返すことができます。UITableViewCellただし、テーブル ヘッダー ビューとしてのサブクラスを使用しないことをお勧めします。

于 2015-05-06T07:48:42.763 に答える