В этой статье будет рассмотрен достаточно простой компонент в UIKit — UISlider. Он служит для выбора значения из заданного диапазона. Рассмотрим мы его на примере регулировки яркости экрана. Так как возможность регулировать яркость из своих приложений появилась только в iOS 5, то вам потребуется как минимум XCode 4.2 с iOS 5 SDK. Что бы проверить изменение яркости вам потребуется iOS-устройство — iPhone, iPod либо iPad.

Приготовления

Создадим проект «Single View Application».

Откроем файл ViewController.m, найдем в нем метод viewDidLoad и допишем в него:

UISlider* slider = [[UISlider alloc] initWithFrame:CGRectMake(26, 219, 264, 23)];

[self.view addSubview:slider];
[slider release];

Запустим проект и убедимся, что в центре экрана действительно появился UISlider.

Выше приведенный пример — способ создания UISlider.

Получение значения

Самый первый вопрос, который вы можете задать — «А как же получать значение с UISlider?» и «Как узнать, что значение изменилось»?

У UISlider есть свойство — value. Это свойство имеет тип float:

float value = [slider value];

Но прежде всего стоит задать диапазон из которого выбирается значение. Для этого существует два свойства — maximumValue и minimumValue. Они показывают максимальное и минимальное значение соответственно. Задать их можно так:

[slider setMinimumValue:0.0];

[slider setMaximumValue:1.0];

Узнаем об изменении значения

Чтобы узнать, что значение изменилось необходимо определить обработчик данного события (допишите в ViewController.m):

-(void) sliderValueDidChange:(id)sender {

// код обработки
}

И назначить его (допишите в метод viewDidLoad):

[slider addTarget:self action:@selector(sliderValueDidChange:) forControlEvents:UIControlEventValueChanged];

В какой момент будет вызываться обработчик? В данном случае следует обратить внимание на свойство isContinuous. Если данное свойство установлено в YES, то обработчик будет вызываться при каждом изменении значения, если в NO, то обработчик будет вызываться только после поднятия пальца с экрана.

Регулировка яркости экрана

В iOS 5 разработчики получили возможность регулировать яркость экрана прямо из приложения. Делается это следующим образом:

[[UIScreen mainScreen] setBrightness:ЗНАЧЕНИЕ];

Значение должно быть в диапазоне от 0 до 1 включительно.

Далее сделаем так, чтобы слайдером можно было регулировать яркость экрана. Установим диапазон значений слайдера между 0 и 1, назначим обработчик и сделаем так, чтобы событие приходило при каждом изменении. Код метода viewDidLoad:

- (void)viewDidLoad

{
[super viewDidLoad];
UISlider* slider = [[UISlider alloc] initWithFrame:CGRectMake(26, 219, 264, 23)];
[slider setMinimumValue:0.0];
[slider setMaximumValue:1.0];
[slider addTarget:self action:@selector(sliderValueDidChange:) forControlEvents:UIControlEventValueChanged];
[slider setContinuous:YES];
[self.view addSubview:slider];
[slider release];

[slider setValue:[[UIScreen mainScreen] brightness]];
}

Последняя строчка устанавливает положение слайдера в текущее значение яркости экрана.

Далее напишем метод обработчик, который задает яркость экрана в зависимости от значение слайдера:

-(void) sliderValueDidChange:(id)sender {

UISlider* slider = (UISlider*)sender;
[[UIScreen mainScreen] setBrightness:[slider value]];
}

На этом все! Как всегда, вы можете загрузить исходный проект. Напомню, что для полноценной работы вам потребуется iOS-устройство.

Исходники тут

Последние статьи

  • Audio Unit в iOS. Часть 3, накладываем эффект Delay

  • Audio Unit в iOS. Часть 2, строим граф и проигрываем файлы

  • Audio Unit в iOS. Часть 1, введение.

  • Используем Emoji в своих приложениях

  • Как вводить в UITextField только цифры?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *