我在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