iphone - 如何找出其他哪些 UIScrollView 干扰了 scrollsToTop?

标签 iphone ios cocoa-touch ios5

我有几个带有一个或多个 ScrollView 的 View Controller 。尽管我已经在具有多个 ScrollView 的 View Controller 中明确设置了 scrollsToTop 标志,但是当我点击状态栏时,一些 ScrollView 拒绝向上滚动。

在按下另一个 View Controller 并弹出它之后,该手势有时会在以前没有的 View 中起作用。

这很困惑,我就是不知道问题出在哪里。如何有效调试这个问题?状态栏点击是否有全局(私有(private))通知,以便我可以手动 ScrollView ?

最佳答案

我之前使用如下代码来调试这种情况:

- (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];
    }
}

根据您找到的 UIScrollView 数量,您可以修改该代码以帮助调试您的特定情况。

一些想法:

  • 更改各种 ScrollView 的背景颜色以在屏幕上识别它们。
  • 打印这些 ScrollView 的 View 层次结构以识别它们的所有父 View 。

理想情况下,您应该只在窗口层次结构中找到一个将 scrollsToTop 设置为 YES 的 UIScrollView。

关于iphone - 如何找出其他哪些 UIScrollView 干扰了 scrollsToTop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8527801/

相关文章:

iphone - 什么时候可以使用glReadPixels?

iphone - 网站在 iPhone 和 iPad 上都太宽

ios - Swift - 工具栏完成按钮未出现在 UIPickerView subview 中

html - autoplay=1 不适用于 <iframe> 在移动设备中播放视频

java - 应用内购买将交易收据发送到服务器

iPhone:反转 NSMutablearray 时收到警告

ios - 小红色圆形删除按钮

objective-c - 清除UIImage使用的内存— UIImageView.image = nil不这样做

ios - 为什么我不能更改 iPhone 应用程序的发布日期?