0

UITableViewのセクションヘッダーにカスタムヘッダービューを使用しています。次に、いくつかのdataSourceメソッドを示します。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    SBTableViewHeader *header = [[SBTableViewHeader alloc] init];
    header.titleLabel.text = self.earnings;
    header.subtitleLabel.text = @"You have earned $23 today.";
    return header;
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 90;
}

ヘッダービューの高さが90ポイントになるはずですが、代わりに、ヘッダービューの90ポイントに加えて、一部のセルをカバーする90ポイントの空のスペースが表示されます。これは合計180で、Photoshopで測定しました。

ヘルプ!

さらに詳しい情報:SBTableViewHeaderはUIViewサブクラスであり、.xibを使用しています。特別なことは何もありません。ファイルの所有者はSBTableViewHeaderに設定されており、他のすべては正しく接続されているようです。

4

1 に答える 1

1

(コメントから:)

正しいサイズのビューを作成するinitWithFrame代わりに使用する必要があります。init

heightForHeaderInSection:(および同様にheightForRowAtIndexPath)ヘッダーとセルの位置、スクロールインジケーターのサイズなどを計算するためにのみテーブルビューで使用されます。

データ ソース (またはデリゲート) メソッドは、正しいサイズのセル/ビューを返す必要があります。そうしないと、他のアイテムとオーバーラップしてしまいます。

于 2013-02-06T18:05:04.657 に答える