Comments 17
Почему два раза upBlock?
- (void)volumeUp {
if(self.upBlock) {
self.upBlock();
}
}
- (void)volumeDown {
if(self.upBlock) {
self.upBlock();
}
}
Можно проще:
@interface UIApplication (Private)
- (void) setWantsVolumeButtonEvents: (BOOL)flag;
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[UIApplication sharedApplication] setWantsVolumeButtonEvents: YES];
NSOperationQueue *mainQueue = [NSOperationQueue mainQueue];
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserverForName:@"_UIApplicationVolumeDownButtonDownNotification"
object:nil
queue:mainQueue
usingBlock:^(NSNotification *note) {
NSLog(@"Volume '-' event(down)");
}];
[center addObserverForName:@"_UIApplicationVolumeDownButtonUpNotification"
object:nil
queue:mainQueue
usingBlock:^(NSNotification *note) {
NSLog(@"Volume '-' event (up)");
}];
[center addObserverForName:@"_UIApplicationVolumeUpButtonDownNotification"
object:nil
queue:mainQueue
usingBlock:^(NSNotification *note) {
NSLog(@"Volume '+' event(down)");
}];
[center addObserverForName:@"_UIApplicationVolumeUpButtonUpNotification"
object:nil
queue:mainQueue
usingBlock:^(NSNotification *note) {
NSLog(@"Volume '+' event (up)");
}];
return YES;
}
И ещё два момента:
1) По хорошему, если кнопки громкости используются для чего-то кроме, собственно, изменения громкости и камеры, вам стоило предупредить заказчика. Такое приложение могут забанить за нарушение гайдлайнов.
2) Об управлении кнопками громкости, среди всего прочего, я писал еще год назад в своей статье (Пример 3). Способ подобный вашему известен около 4 лет.
1) По хорошему, если кнопки громкости используются для чего-то кроме, собственно, изменения громкости и камеры, вам стоило предупредить заказчика. Такое приложение могут забанить за нарушение гайдлайнов.
2) Об управлении кнопками громкости, среди всего прочего, я писал еще год назад в своей статье (Пример 3). Способ подобный вашему известен около 4 лет.
1. Я сразу предупредил заказчика. Использовались кнопки изменения громкости, как спуск камеры. Гайдлайны при этом не нарушались.
2. Спасибо огромное за информацию! Просто когда я искал на Stackoverflow решение — я его не нашел. Скорее всего плохо искал.
2. Спасибо огромное за информацию! Просто когда я искал на Stackoverflow решение — я его не нашел. Скорее всего плохо искал.
1. Я конечно не знаю специфики вашего приложения, но например стандартный API, UIImagePickerController сам переопределяет кнопки громкости, и не нужно никаких хаков.
ошибся веткой
@synthesize upBlock = _upBlock;
@synthesize downBlock = _downBlock;
Вы какой версией компилятора пользуетесь? Давно уже такого делать не нужно.
Спасибо! Очень полезная информация!
Sign up to leave a comment.
Как заставить внешние кнопки iPhone работать на себя