0

在 Apple iOs 照片应用程序中,每张照片都会全屏显示,但是当您点击它时,navigation bar一些tab bar菜单选项(如分享照片)只会出现并停留几秒钟。我怎样才能做到这一点UIImageView

4

1 回答 1

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;

}
于 2013-02-27T04:42:06.650 回答