我在ViewController中有一个AVRoutePickerView,使用Airplay时无法更改颜色。

AVRoutePickerView *routePickerView = [AVRoutePickerView new];
routePickerView.backgroundColor = [UIColor clearColor];
routePickerView.activeTintColor = [UIColor blueColor];
routePickerView.tintColor = [UIColor whiteColor];

//I put it in a StackView, incidentally
    [self.bottomButtonStack insertArrangedSubview:routePickerView atIndex: 3];
    [routePickerView.layer setFrame:CGRectMake(80,80,80,80)];
    [routePickerView.heightAnchor constraintEqualToConstant:52].active = true;
    [routePickerView.widthAnchor constraintEqualToConstant:52].active = true;

这可以正常工作,但是即使从选择器中使用了AirPlay源,该按钮也始终保持tintColor。

当Airplay处于 Activity 状态时,如何获取按钮以更改为activeTintColor?

我认为应该在Airplay处于 Activity 状态时自动使用activeTintColor。如果未设置颜色,则无论如何按钮的颜色始终为蓝色。

提前致谢!

最佳答案

升级到iOS 12.3后,我首先注意到了这个问题。从那以后,我发现创建AVRouteDetector实例会导致AVRoutePickerView正确应用activeTintColor。只需创建检测器并保留在成员变量中即可:

   self.myDetector = AVRouteDetector()

   // create route picker view as usual

09-25 20:54