Ios AVRoutePickerView赢得';当Airplay处于活动状态时,请不要更改颜色

Ios AVRoutePickerView赢得';当Airplay处于活动状态时,请不要更改颜色,ios,xcode,Ios,Xcode,我在ViewController中有一个AVRoutePickerView,当它使用Airplay时,我无法更改颜色 AVRoutePickerView *routePickerView = [AVRoutePickerView new]; routePickerView.backgroundColor = [UIColor clearColor]; routePickerView.activeTintColor = [UIColor blueColor]; routePickerView.ti

我在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源,按钮也始终保持淡色

当Airplay处于活动状态时,如何使按钮更改为activeTintColor?

我以为当Airplay处于活动状态时,它会自动使用activeTintColor。如果未设置任何颜色,则无论发生什么情况,按钮的颜色始终为蓝色


提前谢谢

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

   self.myDetector = AVRouteDetector()

   // create route picker view as usual

您需要设置
routePickerButtonStyle

let routePickerView = AVRoutePickerView(frame: CGRect(x: 200, y: 200, width: 100, height: 100))
    routePickerView.routePickerButtonStyle = .custom
    routePickerView.backgroundColor = UIColor.clear
    routePickerView.delegate = self
    self.view.addSubview(routePickerView)

我以前从未见过这种行为。实际上,当我选择一条路线时,会为我应用活动的着色颜色。你能在一个样本项目中复制吗?哇,我不敢相信文档中没有提到这一点!花了几个小时试图找出我做错了什么。。。谢谢它的文档记录得非常糟糕,您的解决方案是针对tvOS的,因为OP询问的iOS上不支持按钮样式。