【发布时间】:2018-08-08 15:25:18
【问题描述】:
我已经构建了一个如下所示的流式音频应用:
当流丢失时,我覆盖这个屏幕:
我的问题是,在 Voiceover ON 的情况下,所有底层控件仍然处于活动状态:我可以全部滑动到它们,并调整它们的值。
这是我的代码的 sn-p,用于何时丢失和重新获得信号:
@objc func lostStream() {
DispatchQueue.main.async {
self.lossOfSignalBlocker.alpha = 0.0
self.lossOfSignalBlocker.frame = self.view.bounds
self.view.addSubview(self.lossOfSignalBlocker)
self.lossOfSignalBlocker.isUserInteractionEnabled = true
//UIView.animate(withDuration: 0.2) { self.lossOfSignalBlocker.alpha = 1.0 }
UIView.animate( withDuration: 0.2, animations: { self.lossOfSignalBlocker.alpha = 1.0 } )
//Announce loss of signal to Voiceover user.
UIAccessibilityPostNotification(
UIAccessibilityAnnouncementNotification,
"Signal Lost" as NSString
)
}
}
@objc func regainedStream() {
DispatchQueue.main.async {
UIView.animate( withDuration: 0.2, animations: { self.lossOfSignalBlocker.alpha = 0.0 } )
{ _ in
self.lossOfSignalBlocker.removeFromSuperview()
}
}
}
如何禁用主 UI,以便只有叠加层响应任何与画外音相关的操作?
【问题讨论】:
标签: ios swift uiview voiceover subviews