【问题标题】:Stop UIScrollView scrolling during touch在触摸期间停止 UIScrollView 滚动
【发布时间】:2013-07-08 18:48:30
【问题描述】:

有没有办法阻止UIScrollView 滚动同时按住触摸?使用 scrollViewDidScroll: 委托方法设置内容偏移量过多,可能会导致 GPU 出现一些问题(视图移动和快速重置),所以我希望有一个更简洁的解决方案,如果有的话。

【问题讨论】:

    标签: ios cocoa-touch uiscrollview uiscrollviewdelegate


    【解决方案1】:

    你可以通过在 viewDidLoad..中使用它的属性 scrollEnabled 来简单地把它转出来。

    self.myScrollView.scrollEnabled = NO;
    

    【讨论】:

    • 请注意:“在触摸过程中”
    【解决方案2】:

    我会尝试:

    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
        [scrollView setScrollingEnabled:NO];
    }
    
    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
        [scrollView setScrollingEnabled:NO];
    }
    

    按下它会关闭它,您可以调整检测“移动”与原始触摸的距离,以查看是否要重新启用滚动

    【讨论】:

    • 只有当视图被触摸时才会起作用。我正在询问当前正在触摸视图的时间。
    • 啊,好吧,我以为触摸开始时仍然触发了长触摸我的坏。
    • 它仅在触摸被移动或结束时触发。然而,setScrollingEnabled:NO 在禁用前视图移动时也会导致抖动动画。这与长触摸没有任何关系。感谢您的回复!
    猜你喜欢
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 2011-07-19
    • 2011-06-22
    • 2013-06-08
    • 1970-01-01
    相关资源
    最近更新 更多