contentOffset сбрасывается на заголовок ScrollView при вертикальной прокрутке в UITableView

Я использую этот код для выравнивания нагрузки 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, getter для self.headerView и т. д. все безрезультатно.

На первом снимке отображается горизонтальная прокрутка и выравнивание заголовка, второе изображение показывает, что происходит в самом первом бите вертикальной прокрутки, сразу же выходят из строя заголовки.

Во время горизонтальной прокрутки все выравнивается.

Во время вертикальной прокрутки все должно быть на корме.

Я закончил переопределять drawRect: я получаю текущее смещение содержимого scrollViews перед вертикальной прокруткой. И тогда мне понадобилось немного больше, чтобы остановить все мои взгляды с черным фоном.

 - (void)drawRect:(CGRect)rect { [super drawRect:rect]; CGContextRef ctx = UIGraphicsGetCurrentContext(); CGFloat white[] = {1, 1, 1, 1}; CGContextSetFillColor(ctx, white); CGContextAddRect(ctx, rect); CGContextFillPath(ctx); self.contentOffset=[self.scrollViewMaster scrollViewPosition]; } 
Interesting Posts
Давайте будем гением компьютера.