iOS tableViewは、セルの下にサブビューを追加します

    [self.tableView reloadData];

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        
        [self.tableView insertSubview:self.header_backgroundView atIndex:0];
    });

まず、tableViewが更新された後、[self.tableView insertSubview:self.header_backgroundView atIndex:0];メソッドを呼び出します。

効果を図に示します

次に、tableViewのスクロールイベントをリッスンし、スクロールプロセス中にサブビューを最下層に挿入します。

        [scrollView vv_addObserver:scrollViewHelper forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew withBlock:^(NSDictionary * _Nonnull change, void * _Nonnull context) {
            [scrollViewHelper scrollViewDidSroll:weakScrollView superViewInsetHeight:offset];
            [weakScrollView insertSubview:headerConfig.backgroundView atIndex:0];
        }];

これはcollectionViewとは少し異なります。テーブルビューのスクロールプロセス中にchangeメソッドを常に動員する必要があります。そうしないと、セルが上書きされます。

モニタリングまたはスクロールプロキシ方式で最下層に挿入されていない場合、スクロール後の効果は図のようになります。

おすすめ

転載: blog.csdn.net/LIUXIAOXIAOBO/article/details/112884174