Я использовал код, подобный следующему, для отладки этого сценария, до:
- (void)findMisbehavingScrollViews
{
UIView *view = [[UIApplication sharedApplication] keyWindow];
[self findMisbehavingScrollViewsIn:view];
}
- (void)findMisbehavingScrollViewsIn:(UIView *)view
{
if ([view isKindOfClass:[UIScrollView class]])
{
NSLog(@"Found UIScrollView: %@", view);
if ([(UIScrollView *)view scrollsToTop])
{
NSLog(@"scrollsToTop = YES!");
}
}
for (UIView *subview in [view subviews])
{
[self findMisbehavingScrollViewsIn:subview];
}
}
В зависимости от того, сколько UIScrollViews вы найдете, вы можете изменить этот код, чтобы помочь отладить вашу конкретную ситуацию.
Некоторые идеи:
- Изменение цветов фона различных видов прокрутки для их идентификации на экране.
- Распечатайте иерархию представлений этих прокруток, чтобы идентифицировать все их суперпредставления.
В идеале вы должны найти только один UIScrollView в иерархии окон, для которого scrollsToTop установлено в YES.