2013-05-13 4 views
1

Есть ли какие-либо методы, которые могут проверять кнопку маршрута MPVolumeView, видна на iPad?Как проверить кнопку маршрута MPVolumeView видна

Теперь я могу получить доступ к кнопке маршрута через приведенный ниже код, но я понятия не имею, почему я проверяю скрытую кнопку, альфа всегда 0, видна ли она или нет.

for (UIButton *button in volumeView.subviews) { 
    if ([button isKindOfClass:[UIButton class]]) { 
     // here the button is route button 
    } 
} 

Любая помощь ценится, спасибо.

ответ

1

Нет никакого официального официального способа проверить, доступна ли игра в эфир.

Существует, однако, проект github, называемый airplayDetector, который использует подход, который вы пытаетесь, путем проверки альфа-значения кнопки путем «просмотра» свойства.

Это взято из AirPlayDetector/AirPlayDetector.m

for (UIView *view in volumeButton.subviews) { 
    if ([view isKindOfClass:[UIButton class]]) { 
     airplayButton = [view retain]; 
     [airplayButton addObserver:self forKeyPath:@"alpha" options:NSKeyValueObservingOptionNew context:nil]; 
    } 
} 

Вы можете найти соответствующий код здесь: https://github.com/StevePotter/AirPlayDetector

Исходный код не соответствует ARC, но вилки, так что проверить тех, Если вам нужно.

0

Начиная с iOS 7.0 существует свойство, называемое areWirelessRoutesAvailable. Вы также можете зарегистрироваться для уведомления MPVolumeViewWirelessRoutesAvailableDidChangeNotification.