Pull to refresh

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;
}
Но при этом громкость будет прибавляться\убавляться и будет видно индикатор громкости?
все эти _UIApplicationVolumeDownButtonUpNotification как-то смахивают на приват API
И ещё два момента:
1) По хорошему, если кнопки громкости используются для чего-то кроме, собственно, изменения громкости и камеры, вам стоило предупредить заказчика. Такое приложение могут забанить за нарушение гайдлайнов.

2) Об управлении кнопками громкости, среди всего прочего, я писал еще год назад в своей статье (Пример 3). Способ подобный вашему известен около 4 лет.
1. Я сразу предупредил заказчика. Использовались кнопки изменения громкости, как спуск камеры. Гайдлайны при этом не нарушались.
2. Спасибо огромное за информацию! Просто когда я искал на Stackoverflow решение — я его не нашел. Скорее всего плохо искал.
UIImagePickerController использовать было сложно в связи со спецификой проекта. Этот вариант тоже рассматривался, но был отсеян. Решение с Notification Center от Вас выше тоже работает на ура ;)
@synthesize upBlock = _upBlock;
@synthesize downBlock = _downBlock;


Вы какой версией компилятора пользуетесь? Давно уже такого делать не нужно.
Да, делать так уже нет надобности; я для тепло-ламповости кода так пишу :) Больше не буду!
Ирония судьбы: сегодня же вышла iOS 7, в которой свойство MPMusicPlayerController.volume (на котором построено ваше решение) объявляется не рекомендованным к использованию (deprecated)


ссылка
Вовремя же я выложил на хабр! :) Еще раз спасибо за информацию! :)
Sign up to leave a comment.

Articles