Wygląda na to, że ogólnie animowanie przycisków sprawia, że ich stuknięcia są dość skomplikowane. Rozwiązaniem, które wymyśliłem, było to, aby element animacji był UIView z wszystkimi stylami przycisków. Przed animacjami UIView dodam prawdziwy przycisk do widoku powyżej UIView z jasnym tłem do miejsca, w którym chcę interakcji użytkownika. Zdecydowanie dodaje dodatkowy krok, ale jest bardzo niezawodny.
//create button and view
UIButton *viewNotificationBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, ([UIScreen mainScreen].bounds.size.height -70), 320, 50)];
UIView *viewNotificationView = [[UIView alloc] initWithFrame:CGRectMake(0, ([UIScreen mainScreen].bounds.size.height), 320, 50)];
//add elements to screen
[self.view addSubview:viewNotificationView];
[self.view insertSubview:viewNotificationBtn aboveSubview:viewNotificationView];
[UIView animateWithDuration:0.3 delay:0.0 options:UIViewAnimationOptionAllowUserInteraction animations:^{
[viewNotificationView setFrame:CGRectMake(0, ([UIScreen mainScreen].bounds.size.height - 70), 320, 50)];
} completion:^(BOOL finished) {
[UIView animateWithDuration:0.5 delay:10.0 options:UIViewAnimationOptionAllowUserInteraction animations:^{
viewNotificationView.alpha = 0;
} completion:^(BOOL finished) {
[viewNotificationView removeFromSuperview];
[viewNotificationBtn removeFromSuperview];
}];
}];
ja nic złego, że mój kod jak i twój. różnica ma tylko opóźnienie i opcje. próbowałem, nie działa ... – HelmiB
>> Różnica ma tylko opóźnienie i opcje. - Upewnij się, że nie ustawiłeś alfa na zero. Użyj co najmniej 0.1 zamiast animacji 0.0 ':^{myView.alpha = 0.1; } ' –