このコードを使用して、truckDayScrollViews (UIScrollView のサブクラス) の負荷を UITableView で水平方向に配置します。SUDaysForTruckView は単なるカスタム UILabel です。
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if ([scrollView isKindOfClass:[SUDaysForTruckView class]]) {
CGPoint offset=CGPointMake(scrollView.contentOffset.x, 0);
for (TruckViewCell *cell in self.tableView.visibleCells) {
cell.truckDayScrollView.contentOffset=offset;
}
self.headerView.contentOffset=offset;
self.scrollViewPosition=offset;
}
else{
NSLog(@"Table view scrolling vertically: %f,%f",self.scrollViewPosition.x,self.scrollViewPosition.y);
self.headerView.contentOffset=self.scrollViewPosition;
}
}
スクロールするスクロールビューのクラスがセルの一部である場合 (水平方向にスクロールする場合)、ヘッダーを含むすべてのスクロールビューを更新するという考えです。これはうまくいきます。
ただし、tableView が垂直方向にスクロールすると、ヘッダー スクロール ビューのコンテンツ オフセットは 0,0 にリセットされます。
これはなぜですか、それを修正する方法はありますか。ラインを入れてみました
self.headerView.contentOffset=self.scrollViewPosition;
非常に多くの場所で、cellForRow、self.headerView のゲッターなど。すべて役に立たない。
最初の図は、水平スクロールとヘッダーがどのように配置されるかを示しています。2 番目の図は、垂直スクロールの最初のビットで何が起こるかを示しています。ヘッダーはすぐに整列しなくなります。

