2015-12-08 2 views
0
I added an image to a button. I am using gestures for animating the image in my sample app. It was working fine with iPhone 4, 4s, and 5 but the problem arise from iphone 5s. 

` -(void)awakeFromNib 
{ 
    [super awakeFromNib]; 

    UITapGestureRecognizer *tapGestureRecognizer =     [[UITapGestureRecognizer alloc] initWithTarget:self  action:@selector(characterImagedTapped)]; 

self.characterImageView.userInteractionEnabled = YES; 
[self.characterImageView addGestureRecognizer:tapGestureRecognizer]; 

}Когда я нажимаю на изображение его не работает должным образом с айфона 5s

Вот функция characterImagedTapped,

'- (Недействительными) characterImagedTapped { если ([self.delegate respondsToSelector : @selector (didCharacterTapped :)]) [self.delegate performSelector: @selector (didCharacterTapped :)]; } 'эта функция вызывает hasCharacterTapped.

When I tapped on the button it will call didCharacterTapped function it's implementation as below: 
-(void)didCharacterTapped:(BOOL)tapped  
{ 
    if (tapped && !isCharacterAnimating) { 
     [self startWelcomeBackCharacterAnimation]; 
    } 
}` 

Если указано значение «ДА», оно вызовет startWelcomeBackCharacterAnimation. Если это НЕТ, он пропустит и изображение не будет анимировано.

На самом деле, когда я постучал по кнопке, то отображаемое логическое значение должно быть ДА, но значение tool bool всегда показывает NO с версии iPhone 5s.

+0

- (Недействительными) characterImagedTapped { если ([self.delegate respondsToSelector : @selector (didCharacterTapped :)]) [self.delegate performSelector: @selector (didCharacterTapped :)]; } эта функция вызывает hasCharacterTapped. –

+0

UITapGestureRecognizer * tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: self action: @selector (characterImagedTapped)]; self.characterImageView.userInteractionEnabled = YES; [self.characterImageView addGestureRecognizer: tapGestureRecognizer]; } эта функция вызывает функцию characterImagedTapped –

+0

Не помещайте код в комментарии. Пожалуйста, обновите свой вопрос по мере необходимости. – rmaddy

ответ

1
-(void) characterImagedTapped 
{ 
    if ([self.delegate respondsToSelector:@selector(didCharacterTapped:)]) { 
     [self.delegate performSelector:@selector(didCharacterTapped:) withObject:[NSNumber numberWithBool:YES]]; 
    } 
    else { 
     [self.delegate performSelector:@selector(didCharacterTapped:) withObject:[NSNumber numberWithBool:NO]]; 
    } 
} 

-(void)didCharacterTapped:(NSNumber *)tapped 
{ 
    if (tapped.boolValue) { 
    //[self startWelcomeBackCharacterAnimation]; 
    } 
    else { 
    } 
} 

Вы можете выполнить селектор с объектом и в селекторе вы можете получить доступ к значению объекта в соответствии с приведенной выше кодом

+0

Мне нужно проверить значение крана, если оно ДА, оно должно быть анимированным или не должно. –

0

Составьте свой комментарий, я вижу, что вы устанавливаете tapGestureRecognizer в частности imageview i.e., self.characterImageView.

Попробуйте присвоить его parentviewcharacterImageView.

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(characterImagedTapped)]; 
[self.characterImageView setUserInteractionEnabled:YES]; 
[self.view addGestureRecognizer:tapGestureRecognizer]; 
+0

Я попробовал это, я получаю сообщение об ошибке «Свойство« вид »не найден на объекте типа JJVCCharacterView« –

+0

что здесь отображается JJVCCharacterView? –

+0

JJVCCharacterView - это файл реализации, в котором я вернул код жеста –

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