iOS UISlider拇指的移动来跟踪电影的进度
我正在实现一个视频播放器,其中我已经让UISlider跟踪电影的进度。这意味着当电影结束时,滑块的大拇指应该处于最大值。iOS UISlider拇指的移动来跟踪电影的进度
我无法做到这一点。电影在拇指到达之前结束。有谁能帮我理解可能是什么问题?
这是我写的代码:
//I'm setting the min, max values of the UISlider and calculating the current value
progressBar.minimumValue = 0.0;
progressBar.maximumValue = (float)movie.duration;
progressBar.value = ((float)movie.currentPlaybackTime/(float)movie.duration) * progressBar.frame.size.width;
它不应该仅仅是:progressBar.value =(浮动)movie.currentPlaybackTime?
我的意思,可以说,电影的持续时间为60秒,和(这是currentplaybacktime,我想),电影是在15秒
这样:
进度最小值是0
进度max为60
进度值应该是0和60之间,并且它是其中膜是在值现在:其15.
编辑: 你还应该使用: - setValue:animated:
另一种想法:也许你不在主线程。请确保你是在主线程时使用户界面的变化
只需使用progressBar.value = (float)movie.currentPlaybackTime;
代替progressBar.value = ((float)movie.currentPlaybackTime/(float)movie.duration) * progressBar.frame.size.width;
这是我做的第一件事,但它没有工作 –
最大值应等于边框的宽度:
progressBar.minimumValue = 0.0;
progressBar.maximumValue = progressBar.frame.size.width;
progressBar.value = ((float)movie.currentPlaybackTime/(float)movie.duration) * progressBar.frame.size.width;
感谢您的回应。将检查并回复给您。 –
可能的选项之一,但为什么?坚持电影的持续时间(用于最大值)而不是使用可能在设备旋转或任何其他布局改变时改变的控件的宽度是否更容易? –
我认为这是他正在努力实现的;一个滑块,它取得全部宽度并正确显示当前位置。 – quaertym
你为什么与'进度繁殖。 frame.size.width'? – quaertym
当设备旋转到横向时,进度条的宽度会发生变化。电影的持续时间和当前值将是相同的。我们将如何绘制这种情况下的进度,我想我们必须考虑进度条的宽度。请提出什么可能是更好的方法? –