ios - 点击 UIImageView 时会出现选项

标签 ios menu uiimageview uitabbar tap

在Apple iOs照片应用程序中,每张照片都会占据全屏,但是当您点击它时,导航栏标签栏带有一些菜单选项(例如共享图片) )只是出现并停留几秒钟。我怎样才能在我的 UIImageView 中做到这一点?

最佳答案

UITapGestureRecognizer 添加到您的 View 和 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;

}

关于ios - 点击 UIImageView 时会出现选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15104099/

相关文章:

ruby-on-rails - Ruby on Rails : Uniqueness of elements in drop down menu

网站安装的 iOS 证书允许将设备 UUID 链接到 session

ios - 如何在 iOS 中使用两个不同的表

ios - 如何在 iOS 上使用 FileProviderExtension 显示下载进度

objective-c - 在 Objective C 中创建像 Instagram 一样的移轴滤镜

ios - 如何正确设置导航栏中图像的约束?

iphone - ios 旋转后图像边框变得模糊

c# - MonoTouch.Dialog 可以与级联数据源一起使用吗?

android - 偏好点击

css - 使用css(导航菜单)在同一行显示多个div