2015-10-22 2 views
2

Пожалуйста, проверьте EDIT 3Segue задержки UIButton выделить

У меня есть UIButton, что при нажатии мне нужно, чтобы она неактивна немедленно. Im, используя этот код в качестве декларации:

UIButton *myButton; 
myButton = [[UIButton alloc] init]; //[UIButton buttonWithType:UIButtonTypeCustom]; 
myButton.frame = CGRectMake(132, 375, 40, 40); 
buttonImage = [UIImage imageNamed:@"chat.png"]; 
[myButton setImage:buttonImage forState:UIControlStateNormal]; 
[myButton addTarget:self action:@selector(myButtonInvoked:)forControlEvents:UIControlEventTouchDown]; 
[cell.contentView addSubview:myButton]; 

А вот метод, что кнопка запускает

- (void) myButtonInvoked:(id)sender 
{ 
    UIButton *catchButton = (UIButton *)sender; 

    CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView]; 
    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition]; 

    [UIView animateWithDuration:5 
         delay:0.0 
        options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveEaseInOut 
       animations:^{ 
        catchButton.alpha = 0.4; 
        catchButton.enabled = NO; 
       } 
       completion:NULL]; 

    [self performSegueWithIdentifier:@"hereToThere" sender:self]; 
} 

Im, используя UIAnimation кода, чтобы сделать кнопку серого цвета при нажатии, обратите внимание, что у него есть задержка 0, но UIButton выделяется с задержкой. Как я могу избавиться от этой задержки? Мне нужно myButton, чтобы сразу серое.

Редактировать

Я теперь пытался добавить commentsButton.showsTouchWhenHighlighted = YES;, а также попытался установить изображение для кнопки в UIControlStateNormal и подсвечена изображение, которое является тем же самым, но серый .. что задержки, а также.

Однако, если я помещаю NSLog в начале метода, я вижу, что он печатается сразу же при нажатии кнопки, так почему же он не может сразу обновить изображение? Я полностью испробовали все со следующим, чтобы попытаться получить эту работу:

A) выделение

B) изменение образа

C) изменение альфа в UIButton

Я также поставил это в методе, чтобы увидеть, будет ли это работать.

catchButton.highlighted = YES; 
[catchButton setImage:[UIImage imageNamed:@"chatHighlighted.png"] forState:UIControlStateSelected | UIControlStateHighlighted]; 

EDIT 2

Я просто создать простой UIButton точно так же, как с @selector (methodHere :) и альфа изменения немедленно. Должна быть какая-то другая причина, которая задерживает эту задержку? Супер смущает сейчас.

EDIT 3 закомментировав самую последнюю строку в методе myButtonInvoked: выше (см):

[self performSegueWithIdentifier:@"hereToThere" sender:self]; 

.. установка myButton.alpha = 0.4 запускает сразу (визуально) и проблема исчезла. Почему это происходит, и как я могу обойти эту проблему?

+0

, который длительность братан не задержка, длительность, сколько времени воспроизведения анимации см ссылка может быть поможет вам HTTP: // StackOverflow ,com/questions/23832780/uiview-animatewithduration-handles-to-fast –

+0

Хороший улов и предложение .. попробовал код в ссылке, как уместно в моей ситуации ... все еще испытывает задержку – Chisx

ответ

0

попробуйте с этим.

[UIView animateWithDuration:0.0 //0.0 
         delay:0.0 
        options:UIViewAnimationOptionCurveEaseInOut//UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat | 
       animations:^{ 
        catchButton.alpha = 0.4; 
        catchButton.enabled = NO; 
       } 
       completion:NULL]; 

задержка происходит: потому что вы используете

animateWithDuration = 5 second 
+0

пробовал, что все еще испытывает задержку – Chisx

+0

можете ли вы предоставить фрагмент кода, чтобы я мог наблюдать за задержкой. – Jamil

+0

добавил фрагмент кода к вопросу выше. – Chisx

Смежные вопросы