【问题标题】:iphone - UIGestureRecognizer prevents UITableView from scrolling in Xcode 4.5iphone - UIGestureRecognizer 阻止 UITableView 在 Xcode 4.5 中滚动
【发布时间】:2012-09-07 13:03:18
【问题描述】:

我在UITableView 中添加了两个滑动手势识别器(向左滑动和向右滑动)。之后我的表格视图停止滚动。同时-(void)didSelectRowAtIndex 工作正常。 可能是什么问题?

我所做的只是将对象库中的滑动手势识别器拖放到我的 UITableView 上。

如果我删除它们,我的表格会再次开始滚动。

UPD:

升级到 Xcode 4.5 后会发生这种情况。在旧版本的 Xcode 中没有这样的问题。 为避免这种行为 - 以编程方式添加 UIGestureRecognizers,而不是在 IB 中。

【问题讨论】:

    标签: iphone objective-c xcode cocoa-touch uigesturerecognizer


    【解决方案1】:

    我遇到了同样的问题,我通过将手势识别器链接到视图而不是表视图来解决它。

    1. 显示故事板。
    2. 显示连接检查器。
    3. 显示文档大纲。
    4. 在手势识别器和视图控制器下的视图节点之间的“引用插座集合”处创建新链接。

    问候。 佩德罗。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题: 我曾经将 TabGestureRecognizer 直接拖到情节提要上,而不是通过代码创建它们。在 iOS6 中,这似乎打破了滚动。

      我更喜欢将视图、手势等直接添加到故事板上,而不是通过代码。

      您仍然可以这样做,但需要进行两项更改:

      1) 参考奥特莱斯收藏

      • 右键单击场景停靠栏中您可以看到的 GestureRecognizer。
      • 清除参考奥特莱斯系列部分

      2) 通过代码将GestureRecognizer附加到相关视图

      • 为您的 GestureRecognizer 创建一个插座
      • 在 viewDidLoad 方法中添加以下行:

        [self.tableView addGestureRecognizer:_tabGesture];

      【讨论】:

        【解决方案3】:

        试试下面的代码可能对你有帮助.... 在viewDidLoad:方法中编写波纹管代码

        UISwipeGestureRecognizer *swipeGestureObjectImg = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(yourSlideOpen_Clicked:)] autorelease];//yourSlideOpen_Clicked is method name where you doing something
        swipeGestureObjectImg.numberOfTouchesRequired = 1;
        swipeGestureObjectImg.direction = (UISwipeGestureRecognizerDirectionLeft);
        [yourView addGestureRecognizer:swipeGestureObjectImg];
        
        UISwipeGestureRecognizer *swipeGestureRightObjectImg = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(yourSlideClose_Clicked:)] autorelease];//yourSlideClose_Clicked is method name where you doing something
        swipeGestureRightObjectImg.numberOfTouchesRequired = 1;
        swipeGestureRightObjectImg.direction = (UISwipeGestureRecognizerDirectionRight);
        [yourView addGestureRecognizer:swipeGestureRightObjectImg];
        

        如果这里 tableview 是 UIView 类的子视图,则使用上面的代码,否则只需尝试“yourView”的“youtTableview”

        希望对你有帮助……

        :)

        【讨论】:

        • 是的,它在以编程方式添加它们后起作用。更新到 Xcode 4.5 后会出现此类问题
        【解决方案4】:

        设置手势识别器属性 cancelsTouchesInView = NO

        【讨论】:

        • 是的,你是对的,但它在 Xcode 4.5 中没有帮助(如果你以非编程方式添加它):(
        猜你喜欢
        • 2012-09-06
        • 2012-09-30
        • 1970-01-01
        • 2020-05-02
        • 2016-02-19
        • 2011-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多