我有一个关于如何使用控制硬件的滑块的一般UI问题。
假设我有一段音频硬件,它总是报告它设置的当前音量。发送此数据后,可以将UI滑块设置为正确的位置。
问题在于,当用户移动滑块以更新硬件的音量时,用户通常会以比硬件报告其当前音量更快的速度移动滑块。结果是,当用户移动滑块时,每当接收到来自硬件的体积数据时,滑块就会不断跳跃,因为它会改变其位置。
我可以看到一些解决方案,但它们看起来都非常难看,并且想知道它们是否是最佳实践解决方案,看起来是一个非常常见的问题。
可能的解决方法:
如果您希望在移动滑块时听到音量变化,这不是很好。
问题在于,一旦发布,硬件可能没有"赶上"并且滑块会捕捉到用户将其设置为的不同值。
e.g。也许硬件正在移动伺服,需要时间才能达到最终位置。滑块会要求'一个新职位,但硬件需要一段时间才能达到新职位,同时报告目前的位置。
在伺服示例中,使用可能会使滑块从0移动到1但是在x秒延迟之后,伺服仅为0.5,因此滑块捕捉到0.5然后慢慢变为1
这一切看起来都相当复杂,我想知道是否有标准的方法来做到这一点。
答案 0 :(得分:0)
当您处理各种各样的用例和可能不同的硬件时,很难提出标准解决方案。实际上,您可能不希望音频设备使用相同的方法,也不需要像起重机那样对安全至关重要的方法 另一个想法是限制UI滑块移动的速度,使其与硬件匹配。这可能意味着UI滑块不再具有平滑操作,而是跳转到微小的间隔。如果您的硬件足够快,可以使其工作。
或者,我建议您查看滑块以外的其他内容:例如箭头。您可以使用向上/向下箭头按钮来增加/减少硬件值。由于您的硬件将其位置报告给您,您可以使用该数据在UI上绘制内容(如果您知道最小和最大限制,这非常有效)并且您可以避免硬件问题与UI保持同步因为现在是另一种方式。