UISlider拖动在iOS中表现异常

Posted

技术标签:

【中文标题】UISlider拖动在iOS中表现异常【英文标题】:UISlider drag behaving strangely in iOS 【发布时间】:2014-01-31 05:04:13 【问题描述】:

我以编程方式添加到视图中的 UISlider 有一个奇怪的问题。我相信这个问题是 ios7 引入的。

我没有使用任何自定义图像。

如下图所示,仅当我开始将轨道从最大值移动到最小值时才会出现,然后当我将其移回时它会消失。

这是我用来创建滑块的代码。

_brightnessSlider = [[UISlider alloc] initWithFrame:CGRectMake(size.width * .45,
                                                               size.height * .78,
                                                               size.width * .4,
                                                               size.height * .1)];

[_brightnessSlider setBackgroundColor:[UIColor clearColor]];
_brightnessSlider.minimumValue = 0.0;
_brightnessSlider.maximumValue = 1.0;
_brightnessSlider.continuous = YES;
_brightnessSlider.value = 1.0;
[_brightnessSlider addTarget:self action:@selector(changeBrightness:) forControlEvents:UIControlEventValueChanged];

[self.view addSubview:_brightnessSlider];

什么可能导致这种奇怪的行为?

【问题讨论】:

我的滑块工作正常。此问题出在设备或模拟器上。 在设备上。我无法在模拟器中进行测试,因为我必须使用的库之一不是为通用而编译的。 我已经在设备上运行了您的代码,并且运行良好。我刚刚使用您的代码传递了一个固定框架,如下所示“UISlider* _brightnessSlider = [[UISlider alloc] initWithFrame:CGRectMake(100,20,120 ,40)];" 【参考方案1】:

代码没有问题。问题是“Min Track Tint colour”。您的视图背景颜色可能与 MInTrackTintColor 匹配。

使用这个:

[_brightnessSlider setMinimumTrackTintColor: [UIColor blueColor]];

如果它不能解决您的问题,请告诉我...

【讨论】:

太棒了!我只是将它设置为 lightGreyColor,它就会出现。

以上是关于UISlider拖动在iOS中表现异常的主要内容,如果未能解决你的问题,请参考以下文章

UISlider

检测 UISlider 何时开始和结束拖动

在swift 3中检测uislider拇指拖动的方向

自定义 UISlider 拇指图标:如何阻止拇指图标在拖动时恢复为默认圆形图标?

带有渐变层的 iOS UISLider

在第一代 3.1.3 上拖动 uiScrollview 时,uiSlider 拇指图形“闪烁”