ios - 如何使用 UIScrollview 创建具有动态速度的拇指轮?

标签 ios uiscrollview uicontrol uiscrollviewdelegate

UIThumbWheel

我正在开发一个轮子,就像一个老式的音量控件,它伸出 UIView 的一侧并返回值。我遇到的问题是如何将 UIScrollView 与任务结合起来,同时让旋钮根据用户的滚动速度加速。为清楚起见,我的车轮模型看起来像这样。

Thumb wheel

我已经创建了一个 UIScrollView,它可以删除和添加 subview 来制作轮子。我遇到的问题是让滚轮控件根据用户旋转滚轮的速度调整返回值的大小。三个速度配置文件的值应添加到总和,慢速 (+500)、中速 (+1000) 和快速 (+10000)。为了将橡皮筋保持在零和上限,我使用 contentOffset 显示值。

当我尝试通过添加基于速度的移动来操纵 scrollView.bounds 或 contentOffset 时,我最终遇到了断断续续的体验。如果我忽略 contentSize 窗口(无限滚动),我将丢失橡皮筋值。

有谁知道如何同时获得基于速度的运动和橡皮筋结束?

最佳答案

这是您面临的一个很好的小挑战,我喜欢! :) 现在我正在开发类似的东西,有点像旋转轮的控制,惯性旋转和达到某个阈值时的“橡皮筋”等等!

如果我没看错,您正在使用 UIScrollView 进行控制,并且您正在尝试使用/滥用 UIScrollView 已经存在的弹跳“功能”,对吗?您在根据滚动速度计算速度值时遇到问题,还是踢入橡皮筋会导致问题?

您是否考虑过通过“touchesBegan..”/“touchesMoved”自行实现橡皮筋效果?模仿橡皮筋非常简单:从某个阈值开始, View 的屏幕移动将是手指拖动移动的一半,直到完全停止。 另见:Mimicking the "rubber band" effect from iOS in the Gallery on Android

您还可以查看 iCarousel 的实现或许。它具有类似的自定义编程“橡皮筋”效果。

我知道这不是一个令人满意的回应/答案,但也许它会将您的想法指向其他方向。

关于ios - 如何使用 UIScrollview 创建具有动态速度的拇指轮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15638946/

相关文章:

javascript - 在 Javascript 中使用 Swift 的 self 访问 Swift 类变量和函数

ios - 每次重新加载 tableview 部分时,UITableView 都不会向上滚动

ios - 奇怪的事情: Cannot change UIWebView. origin.x在scrollViewDidEndDecelerating

swift - 使用 RxSwift 自定义 UIControl 子类

swift - 在 tvOS 12 的 TVUIKit 中使用 TVPosterImage

ios - 关于 "location-based APIs for emergency services"上的苹果拒绝

ios - 在 SwiftUI 中对齐包含的 View

UITableCellView 内的 iOS scrollView

swift - 覆盖 isHighlighted 仍然会改变 UIControlState - 为什么?

ios - 如何将 Haskell 代码与 Objective-C 结合起来进行 iOS 开发?