Истекшая кнопка в iphone sdk - PullRequest
0 голосов
/ 15 февраля 2012

Как создать истекшую по времени кнопку в объективе iphone SDK. Чтобы быть более точным, эта кнопка будет отображать в тексте, сколько времени прошло с тех пор, как вы удерживали эту кнопку. Так что на время истечения вы все равно должны держать палец на кнопке, не отпуская. Как только вы отпустите, таймер должен перезагрузиться. Примечание: для iphone, а не для mac.

Ответы [ 2 ]

0 голосов
/ 15 февраля 2012

сначала установите переменную int в заголовочном файле

@property int timerCount;
@property (nonatomic, strong)NSTimer *yourTimer;

не забудьте синтезировать его в файле реализации (если вы все еще используете более низкий SDK, вы можете изменить «сильный» на «сохранить»)

, а затем сделать кнопку и ее функцию

UIButton *yourButton = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
    [yourButton setTag:1];
    [yourButton setBackgroundColor:[UIColor redColor]];
    [yourButton addTarget:self action:@selector(buttonHoldDown) forControlEvents:UIControlEventTouchDown];
    [yourButton addTarget:self action:@selector(buttonRelease) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:yourButton];

таким образом, вы добавили кнопку с размерами x: 0 y: 0 на ваш вид красным цветом, содержащую две цели действия, которые касаются вверх и внутри

при касании кнопки срабатывает функция buttonHoldDown, а когда вы отпускаете кнопку, срабатывает функция buttonRelease

и затем заполните функцию

-(void)buttonHoldDown
{
    yourTimer = [NSTimer timerWithTimeInterval:1 target:self selector:@selector(timerStart) userInfo:nil repeats:NO];
    timerCount = 0;
}
-(void)buttonHoldUp
{
    NSLog(@"the timer stops at %d seconds", timerCount);
    timerCount = 0;
    [yourTimer invalidate];
}
-(void)timerStart
{
    timerCount++;
}

таким образом, когда вы нажимаете кнопку, программа создает таймер и устанавливает значение таймера int в 0, которое будет увеличиваться по мере того, как таймер включится в функцию «timerStart».

когда вы отпустите кнопку, функция будет отслеживать вашу текущую запись timerCount и распечатывать ее в системе, а затем останавливать таймер

0 голосов
/ 15 февраля 2012

Используйте эти два метода для событий кнопок. touchDown вызывается при нажатии кнопки, а touchUp вызывается при снятии пальца с кнопки. Рассчитайте разницу во времени между этими двумя методами. Также вы можете запустить таймер в touchDown и остановить / перезапустить его в touchUp.

//connect this action with Touch up inside
- (IBAction)touchUp:(id)sender {
    NSLog(@"up");
}

//connect this to tocuh down
- (IBAction)touchDown:(id)sender{
    NSLog(@"down");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...