- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
问题:
我有一个 NSScrollView。我用它来实现一个自定义的“ TableView ”,其中包含实际上是 NSViews 的数据行。 (注意:这不是 NSTableView 的实例。)
当我垂直滚动(没有水平滚动)时,我使用 boundsChanged 通知添加(作为 scrollView 的 contentView 的 subview )变得可见的 NSView(具有与 scrollView 的文档可见矩形相交的框架的那些)并删除那些不再可见的( ScrollView 可见矩形之外的框架。)
除了惯性滚动之外,这个过程非常有效。如果我将光标放在单元格 X 上,然后轻弹触控板以惯性快速向下滚动,单元格 X 会迅速离开可见矩形,并因此从 scrollView 的 contentView 中删除。但是,这会破坏惯性滚动。如果我不将单元格 X 作为 subview 移除,那么惯性滚动将完美运行。
我需要什么:
一种保持惯性滚动的方法,同时仍然删除用户开始滚动手势时光标恰好位于其上的 NSView。
我尝试了什么:
我看过 NSResponder 的方法:
-scrollWheel:(NSEvent *)theEvent
默认实现将 scrollWheel 传递给下一个响应者。因此,我对 NSScrollView 进行了子类化并实现了此方法,以试图阻止它将 scrollWheel 事件传递给 scrollView 的 contentView 内的各个 subview 。没用。
然后我进入我的 NSViews(我要添加到 contentView 的那些)并覆盖 scrollWheel 以将事件传递回 scrollView 本身。没用。
在这两种情况下我仍然会滚动,但不是惯性的。
有什么想法吗?谢谢!
最佳答案
我没有在 Cocoa 中做过这件事,但我可能会考虑简单地回收你的 NSView 对象,一旦它离开可见的矩形,通过删除 它的 subview ,然后将其框架更改为从顶部滚动回可见矩形。
显然,您可以通过简单地更新其框架来做到这一点,而不必将其删除并重新添加到 NSScrollView。
关于objective-c - 惯性滚动和-ScrollWheel : on OS X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6158516/
我在我的 Web 应用程序中构建了一个垂直 slider ,并支持 Hammer.js 的鼠标和触摸拖动事件。在拖动结束时(当用户释放鼠标按钮或将手指离开屏幕时,也称为“dragend”事件),如果上
我知道 OrbitControls.js 有一个damping 功能,它增加了全景图的平滑拖动,也称为缓动。我想实现相同的功能但不使用这个库。原因是我需要减少使用的代码量并更严格地控制鼠标或点击事
我试图让我的小行星在按下按钮后继续移动。 void Ship::applyThrust() { _v.setX(_v.getX() - sin(2 * M_PI * (_angle / 360)
我想获得 k 均值成本(scikit kmeans 中的惯性)。只是提醒一下: 成本是每个点到最近簇的距离平方和。 我在 scikit('inertia') 的成本计算之间发现了一个奇怪的差异, 以及
我正在尝试为缩放图像拖动添加动量/惯性效果(如 this example 或就像 iOs 所做的那样),但我遇到了困难。 我已经为此苦苦挣扎了一段时间,并找到了一些有用的资源(例如 this one
使用 jquery ui draggable (http://jqueryui.com/demos/draggable/) 拖动元素时如何启用缓动或惯性?我想重新创建类似于 maps.google.c
我正在使用 C++ 为 macOS 构建 SDL2 应用程序。我需要一些“基本”滚动的应用程序(如网络浏览器)。我使用 SDL_MouseWheel 事件 实现了这一点,它为我提供了一个功能齐全的
设置:我有一个水平 ScrollView 和一个 UISwipeGestureRecognizer,它在我向下滑动时会触发切换到另一个 View 。 问题:如果我水平滚动并开始向下滑动(禁用垂直滚动)
我有一个使用 Laravel 8、惯性 js、Vue.js 和 webpack 的项目。 VueJs chrome 开发工具不适用于此项目。它一直显示为未检测到,我尝试重新启动它,删除并阅读开发工具。
好的,所以我正在尝试在 iOS 中使用轮子形状制作“命运之轮”类型的效果,我可以在其中捕获并旋转轮子。我现在可以随心所欲地拖动和旋转轮子,但是一旦松开我的手指,它就会停止不动。我需要对其施加一些动量或
我是一名优秀的程序员,十分优秀!