iphone - выполнить действие, пока нажата кнопка - PullRequest
0 голосов
/ 31 мая 2011

Скажем, например, у меня есть две кнопки громкости (+ и -)

Как я могу реализовать что-то, например, удерживая кнопку +, она будет постепенно увеличивать громкость с интервалом?(Меня интересует только выполнение действия с интервалом, пока нажата кнопка)

Ответы [ 3 ]

4 голосов
/ 31 мая 2011

Вы можете использовать таймер для этого. Запустите таймер, когда начинается касание. Если время таймера истекло, увеличьте или уменьшите громкость и перезапустите таймер. Когда касание закончится, отмените таймер.

1 голос
/ 31 мая 2011

Предполагая, что у вас есть две кнопки: одна - и другая для +,

, вы можете сохранить информацию об интервале в поле тега вашей кнопки

Установка значения интервала в вашемсвойство тега кнопки.

myPulseButton.tag = 10;
myMinusButton.tag = 10;

Добавление действия с помощью кнопки.

[myPulseButton addTarget:self action:@selector(buttonEvent:) forControlEvents:UIControlEventTouchUpInside]; 

[myMinusButton addTarget:self action:@selector(buttonEvent:) forControlEvents:UIControlEventTouchUpInside];

Реализуйте метод buttonEvent, как показано ниже.

-(void) buttonEvent:(id) sender
{
    UIButton* myButton = (UIButton*) sender;
    if(myButton == myPulseButton)
    {
      [self increaseVolume:myPulseButton.tag];
    }
    else if(myButton == myMinusButton)
    { 
      [self decreaseVolume:myMinusButton.tag];
    }
}
0 голосов
/ 31 мая 2011

Сначала добавьте кнопку ...

 UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [button addTarget:self  action:@selector(increase)forControlEvents:UIControlEventTouchDown];
    [button setTitle:@"Show View" forState:UIControlStateNormal];
    button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
    [view addSubview:button];

затем напишите метод для нажатия кнопки.

-(void)increase
{
//increase the volume here
}

если это не то решение, которое вам нужно, значит добавьте комментарий ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...