MPVolumeView
, пока он виден, заблокирует плавающее поле, даже если пользователь на самом деле его не видит.
Некоторые примеры кода ...
// create/synthesize ivars for "MPVolumeView" and "UIView" (both are necessary)
// I called them "mpVolumeView" and "mpVolumeViewParentView" respectively
// the UIView containing the MPVolumeView can have a frame of (0,0,1,1)
// this way, the user never sees the slider, but it still works normally
- (void)viewDidLoad {
...
// with this, only the slider is visible
mpVolumeViewParentView.backgroundColor = [UIColor clearColor];
// initialize the volume slider (link the parent view in IB, or init here)
mpVolumeView = [[MPVolumeView alloc] initWithFrame:
mpVolumeViewParentView.bounds];
// since it's a programmatic init, the subview must be added like so
[mpVolumeViewParentView addSubview:mpVolumeView];
// allows the floating box to appear without destroying mpVolumeView
mpVolumeView.hidden = YES; // or [mpVolume setHidden:YES]; if you prefer
...
}
Перед изменением громкостизаставить камеру издавать звук ...
mpVolumeView.hidden = NO; // view visible, box doesn't appear
И после звуков, чтобы не было похоже, что вы что-то напутали ...
mpVolumeView.hidden = YES; // view hidden, box appears
Может потребоваться некоторая настройка, чтобы получить то, чтоВы хотите, но это должно быть хорошей отправной точкой.
Этот код для iOS 5.1
Я не знаю, какова совместимость со старыми версиями.