0

挿入バナーをシミュレートするアニメーション UIButton を作成していますが、イベント UIControlEventTouchUpInside を取得していません。これが私のコードです:

-(void)insertInterstitialBannerAtView:(UIView *)mainView {
    if ([self bannerExists]) {
        bannerButton = [UIButton buttonWithType:UIButtonTypeCustom];
        [bannerButton setFrame:CGRectMake(0, 480, 320, 43)];
        [bannerButton setImage:[UIImage imageNamed:@"389.png"] forState:UIControlStateNormal];
        [bannerButton setEnabled:YES];
        [mainView addSubview:bannerButton];
        [mainView bringSubviewToFront:bannerButton];
        [bannerButton addTarget:self 
                         action:@selector(buttonPushed) 
               forControlEvents:UIControlEventTouchUpInside];

        [UIView animateWithDuration:2.0 
                         animations:^(void) {
                             [bannerButton setFrame:CGRectMake(0, 417, 320, 43)];
                         } 
                         completion:^(BOOL finished) {
                             [UIView animateWithDuration:2.0 delay:3.0 options:UIViewAnimationTransitionNone animations:^(void){
                                 [bannerButton setFrame:CGRectMake(0, 480, 320, 43)];
                         } 
                                          completion:^(BOOL finished) {

                                          }];
        }];
    }
}

-(IBAction)buttonPushed{
    NSLog(@"Interstitial Pushed");
}

-(BOOL)bannerExists{
    BOOL returnValue = FALSE;
    NSArray *names = [URLFORSPLASH componentsSeparatedByString:@"/"];
    NSString *fileName = [names lastObject];
    NSString *cacheFolder = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
    NSString *filePath = [cacheFolder stringByAppendingPathComponent:fileName];
    if ([[NSFileManager defaultManager]fileExistsAtPath:filePath] ) {
        returnValue = TRUE;
    }
    return returnValue;
}

誰が何が悪いのか知っていますか?

よろしく、 クラウディオ

4

1 に答える 1

0

ios は、アニメーション中の相互作用を無効にします。UIView ドキ​​ュメントから: http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-SW111

「アニメーション中、アニメーション化されているビューのユーザー操作が一時的に無効になります。(iOS 5 より前では、ユーザー操作はアプリケーション全体で無効になっています。)」

iOS 5 をターゲットにしている場合は、親ビューでタッチをインターセプトしてから、タッチがインターセプトされたときにアニメーションがどこにあるのか、またはどこにあったのかを確認することで回避できる場合があります。

于 2012-04-19T18:12:17.157 に答える