2012-04-19 99 views
0

我創建一個動畫的UIButton來模擬insterstitial旗幟,但它沒有得到事件UIControlEventTouchUpInside。這裏是我的代碼:的Objective-C - 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; 
} 

有沒有人知道什麼是錯的?

問候, 克勞迪奧

回答

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,你也許能逃脫父視圖攔截觸摸,然後檢查,看看他們是哪裏的動畫是/是當觸摸被截獲。

+0

它的說法太:「在動畫,用戶交互暫時參與動畫中的所有觀點禁用無論在此屬性的值,您可以通過配置動畫時指定UIViewAnimationOptionAllowUserInteraction選項來禁用這種行爲。」但仍然無法正常工作。一些想法? – Claudio 2012-04-19 18:36:36