0

TableView の上部にある searchBar を修正できました。しかし今、セクション ヘッダーを searchBar (tableHeaderView の一部) の下で停止させる必要があります。UITableView を次のようにサブクラス化しました。

#import "CustomTableView.h"

@implementation CustomTableView

- (void)layoutSubviews
{
    [super layoutSubviews];
    CGRect rect = self.tableHeaderView.frame;
    rect.origin.y = MAX(0, self.contentOffset.y);
    self.tableHeaderView.frame = rect;
    [self bringSubviewToFront:self.tableHeaderView];
}

@end

これで以下のセクションヘッダーを維持しようとしました:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView.contentOffset.y < 0)
    {
        scrollView.contentInset = UIEdgeInsetsMake(44+scrollView.contentOffset.y, 0, 0, 0);
    } else {
        scrollView.contentInset = UIEdgeInsetsMake(44, 0, 0, 0);
    }
    NSLog(@"offset: %f", scrollView.contentOffset.y);
}

tableViewにインセットでオフセットを入れてみました。ただし、tableView を最後まで引き下げると、上部にギャップが生じます。そして、ユーザーがまだドラッグしている間にそれらを削除しようとしても意味がありません(私の試みのように)。

UIView を使用して検索バーを上部に配置し、その下に UITableView を配置できることはわかっていますが、TableViewController に基づいてこのビューを構築し始めたので、多くのコードを変更する必要があります。

これに対する解決策はありますか?

4

0 に答える 0