如何设置MPVolumeView的色调颜色?

6

如何设置MPVolumeView的色调颜色?

我发现有以下方法:

setMinimumTrackTintColor: 

以及属性

minimumTrackTintColor

然而,使用其中任何一个都会抛出异常。

有人告诉我需要调用

setMinimumTintColor 

或设置该属性。
minimumTrackTintColor 

我想在底层的UISlider上进行操作,但是我不知道如何实现。

谢谢!


不要忘记,它不仅是基础的UISlider - 还有一个路线按钮。 - James Moore
3个回答

8
在iOS 7中,您可以像这样更改MPVolumeView的滑块颜色:
CGRect rect1 = CGRectMake(17, 45, 220, 0);
MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame:rect1];

volumeView.tintColor = [UIColor colorWithRed:0.0f/255.0f green:255.0f/255.0f blue:127.0f/255.0f alpha:1.0f];

希望这可以帮到您。

这个完美地解决了,谢谢!之前我怎么会错过那个属性呢 :P - Phillip
3
虽然这样做可以起到一定作用,但并不完整。路线按钮没有使用色调。 - James Moore

3

我已经寻找了很长时间的答案,因为在我的应用程序中,我需要动态设置volumeView颜色。由于UISlider提供了一种改变其色调颜色的方法,因此您可以循环遍历MPVolumeView的子视图,直到找到UISlider类的实例,然后对其进行操作。

以下是Swift代码:

func customSlider() {
        let temp = mpVolView.subviews
        for current in temp {
            if current.isKind(of: UISlider.self) {
                let tempSlider = current as! UISlider
                tempSlider.minimumTrackTintColor = .yellow
                tempSlider.maximumTrackTintColor = .blue
            }
        }
    }

结果:

这里输入图片描述


(注:此文中的内容需要更多上下文才能进行准确翻译)

1
这对我很有帮助,可以改变路由按钮的颜色:

volumeView.tintColor = .green
if let routeButton = volumeView.subviews.compactMap({ $0 as? UIButton }).first,
    let image = routeButton.image(for: .normal) {
    routeButton.setImage(image.withRenderingMode(.alwaysTemplate), for: [])
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接