我的应用程序上有一个UISlider,我有时需要不仅更新它的值,还要更新它的minimumValue。值已更改但如果我调用setValue方法或为我的滑块指定新值,则它具有新值,但滑块不会将其自身重新绘制到此新值的位置。我怎么重新粉刷它? 这是我更改minimumValue的一段代码。
if([array count] < 50)
[sliderTamanyo setMinimumValue:2];
else if([array count] < 200)
[sliderTamanyo setMinimumValue:3];
else
[sliderTamanyo setMinimumValue:4];
if(sliderTamanyo.value < sliderTamanyo.minimumValue)
self.sliderTamanyo.value = self.sliderTamanyo.minimumValue;
[self.sliderTamanyo setNeedsDisplay];
答案 0 :(得分:2)
由于UISlider
继承自UIView
,您不能在更新值后调用[yourSlider setNeedsDisplay];
。
这将强制UISlider
实例完全重绘自身,因此可能会考虑您设置的新值。
编辑:
在UISlider
中嵌入UIBarButtonItem
时似乎存在一些常见问题 - 有关详细信息,请参阅this Stack Overflow question。
答案 1 :(得分:0)
我已经通过删除滑块并将其添加到工具栏来解决了这个问题。我用过这段代码:
NSMutableArray *items = [NSMutableArray arrayWithArray:self.toolbar.items];
id slider = [items lastObject];
[items removeLastObject];
self.toolbar.items = items;
[items addObject:slider];
self.toolbar.items = items;
我使用id
代替UISlider
恢复了我的滑块,因为该滑块位于UIBarButtonItem