2013-02-27 66 views
0

在苹果iOs照片应用程序中,每张照片都是全屏显示,但是当您点击它时,会出现navigation bartab bar以及一些菜单选项(如共享图片),并保留几秒钟。我如何在我的UIImageView中做到这一点?当点击UIImageView时出现选项

+0

你有什么已经尝试过? – rickerbh 2013-02-27 04:40:28

回答

1

添加一个UITapGestureRecognizer到您的视图和UiView您的顶栏和底栏,或者你喜欢什么,并按照下面的代码。我认为这可能会帮助你。

//下面写下代码ViewDidLoad

UITapGestureRecognizer *singleTapOne = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; 
    singleTapOne.numberOfTouchesRequired = 1; singleTapOne.numberOfTapsRequired = 1; singleTapOne.delegate = self; 


    [self.view addGestureRecognizer:singleTapOne]; [singleTapOne release]; 
    for (UIGestureRecognizer *gR in self.view.gestureRecognizers) { 
     gR.delegate = self; 

// handleSingleTap方法

- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer 
{ 




    if (recognizer.state == UIGestureRecognizerStateRecognized) 
    { 
     CGRect viewRect = recognizer.view.bounds; // View bounds 

     CGPoint point = [recognizer locationInView:recognizer.view]; 

     CGRect areaRect = CGRectInset(viewRect, TAP_AREA_SIZE, 0.0f); // Area 

     if (CGRectContainsPoint(areaRect, point)) // Single tap is inside the area 
     { 


      if ((m_CtrlViewTopBar.hidden == YES) || (m_CtrlViewBottomBar.hidden == YES)) 
      { 
       [self showToolbar:m_CtrlViewTopBar]; 
       [self showToolbar:m_CtrlViewBottomBar]; // Show 
      } 
      else 
      { 
       [self hideToolbar:m_CtrlViewTopBar]; 
       [self hideToolbar:m_CtrlViewBottomBar]; 
      } 


      return; 
     } 

     CGRect nextPageRect = viewRect; 
     nextPageRect.size.width = TAP_AREA_SIZE; 
     nextPageRect.origin.x = (viewRect.size.width - TAP_AREA_SIZE); 

     if (CGRectContainsPoint(nextPageRect, point)) // page++ area 
     { 
      //[self incrementPageNumber]; return; 
     } 

     CGRect prevPageRect = viewRect; 
     prevPageRect.size.width = TAP_AREA_SIZE; 

     if (CGRectContainsPoint(prevPageRect, point)) // page-- area 
     { 
      //[self decrementPageNumber]; return; 
     } 
    } 

} 

- (void)hideToolbar:(UIView*)view //Hide Toolbars 
{ 

#ifdef DEBUGX 
    NSLog(@"%s", __FUNCTION__); 
#endif 

    if (view.hidden == NO) 
    { 
     [UIView animateWithDuration:0.25 delay:0.0 
          options:UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction 
         animations:^(void) 
     { 
      view.alpha = 0.0f; 
     } 
         completion:^(BOOL finished) 
     { 
      view.hidden = YES; 
     } 
     ]; 
    } 
    [timer invalidate]; 
    timer=nil; 
} 
- (void)showToolbar:(UIView*)view //Show Toolbars 
{ 
#ifdef DEBUGX 
    NSLog(@"%s", __FUNCTION__); 
#endif 

    if (view.hidden == YES) 
    { 


     [UIView animateWithDuration:0.25 delay:0.0 
          options:UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction 
         animations:^(void) 
     { 
      view.hidden = NO; 
      view.alpha = 1.0f; 
     } 
         completion:NULL 
     ]; 
     if (!timer) { 
      timer=[NSTimer scheduledTimerWithTimeInterval:5 
                target:self 
               selector:@selector(HideToolBarWithTime) 
               userInfo:nil 
                repeats:YES]; 
     } 

    } 
    [self.view addSubview:view]; 
} 
-(void)HideToolBarWithTime //Hide Toolbars with time 
{ 


     [self hideToolbar:m_CtrlViewTopBar]; 
     [self hideToolbar:m_CtrlViewBottomBar]; 
     [timer invalidate]; 
     timer=nil; 


} 

//手势代表

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 

    return YES; 
} 

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
{ 
    return YES; 

} 
相关问题