Ios 并非所有iPhone都检测到设备按钮按下
我正在使用Ios 并非所有iPhone都检测到设备按钮按下,ios,objective-c,Ios,Objective C,我正在使用JPSVolumeButtonHandler检测iPhone音量按钮的按下。我注意到iOS 13上出现了一些奇怪的行为,即当检测到音量增大时,大部分时间都没有检测到向下按钮,尤其是在快速连续按压时。 JPSVolumeButtonHandler使用KVO来监视此卷的卷更改: [self.session addObserver:self forKeyPath:sessionVolumeKeyPath options:(NSKe
JPSVolumeButtonHandler
检测iPhone音量按钮的按下。我注意到iOS 13上出现了一些奇怪的行为,即当检测到音量增大时,大部分时间都没有检测到向下按钮,尤其是在快速连续按压时。
JPSVolumeButtonHandler
使用KVO
来监视此卷的卷更改:
[self.session addObserver:self
forKeyPath:sessionVolumeKeyPath
options:(NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew)
context:sessionContext];
但是按下向下按钮时,observeValueForKeyPath:…
似乎没有被调用
如何改进音量下降按钮的检测?说它与
KVO
兼容。我假设AVAudioSession
本身无法正确发送某些事件。调用-[NSObject addObserver:forKeyPath:options:context]
时是否可以尝试删除选项?另外,当我有一个使用MPVolumeView
的项目时,当我想要隐藏卷视图时,它无法正常工作。似乎AVAudioSession
尝试检测视图层次结构中是否存在任何未隐藏的MPVolumeView
实例。我必须将alpha
设置为CGFloatMin
而不是设置ishiden=true
或alpha=0
[[MPVolumeView alloc]initWithFrame:CGRectMake(MAXFLOAT,MAXFLOAT,0,0)];所以它不应该是可视的。。。我无法从该调用中删除选项,没有它们它无法编译否,您使用MPVolumeView
所做的操作已经足够远了,并将高度和宽度设置为零。iOS可以检测到它并将其标记为不可见,并且不会告诉任何按钮事件。您可能需要在视图显示某些内容时放置什么(如CGRectMake(50100200,5)
),但要设置alpha=cgloat\u MIN+0.01
。当UIKit检测到它可见时,它将在视觉上不可见