iOS 7.1中的UISlider setMaximumTrackTintColor

use*_*396 14 uislider ios

[slider setMaximumTrackTintColor: color]
Run Code Online (Sandbox Code Playgroud)

在iOS 7.1中有意想不到的结果(滑块栏改变其位置显示在顶部而不是垂直中心或完全消失),同时与以前的版本一起工作正常.

[slider setMinimumTrackTintColor: color]
Run Code Online (Sandbox Code Playgroud)

确实呈现预期的结果.

这个问题可能是相关的:UISlider setMaximumTrackTintColor,但到目前为止还没有答案.

更新:

我明白了: 错误 代替: 在此输入图像描述

更新#2:

使用setMaximumTrackImage可能有效,但我正在寻找的解决方案是一种设置任何随机颜色而不是预先存在的图像的方法.

更新#3:

此问题仍存在于iOS 7.1.1中.

use*_*396 18

发现这个workaroud:

UIImage从动态创建1x1px UIColor:

CGRect rect = CGRectMake(0, 0, 1, 1);
UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0);
[color setFill];
UIRectFill(rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)

然后

[slider setMaximumTrackImage:image forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

看起来像一个昂贵的解决方案,但它完成了工作.