【问题标题】:smoothly Hidden navigation bar顺利隐藏导航栏
【发布时间】:2014-07-12 06:26:02
【问题描述】:

如何在不调整视图框架(或 tableView)的情况下做到这一点? 我使用此代码并调整了视图大小,然后向下/向上滚动 我使用代码,而不是故事板

 - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
 {
if ([gestureRecognizer class] == [UIPanGestureRecognizer class])
{
    UIPanGestureRecognizer *panGestureRec = (UIPanGestureRecognizer *)gestureRecognizer;
    CGPoint distance = [panGestureRec translationInView:self.tableView];

    if (distance.y > 0 || distance.y < 0)
    {
        if (distance.y > 0) // down
        {
            //NSLog(@"user swiped down");
            [self.navigationController setNavigationBarHidden:YES animated:YES];

        } else if (distance.y < 0) //up
        {
            //NSLog(@"user swiped up");
            [self.navigationController setNavigationBarHidden:NO animated:YES];
        }

        return NO;
    } else {
        return YES;
    }
}
return YES;

}

【问题讨论】:

    标签: ios iphone uinavigationcontroller navigation uinavigationbar


    【解决方案1】:

    试试这个代码。这将提供流畅的动画(使用 UIView 动画属性)

    - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
     {
    if ([gestureRecognizer class] == [UIPanGestureRecognizer class])
    {
    
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:2];
    
        UIPanGestureRecognizer *panGestureRec = (UIPanGestureRecognizer *)gestureRecognizer;
        CGPoint distance = [panGestureRec translationInView:self.tableView];
    
        if (distance.y > 0 || distance.y < 0)
        {
            if (distance.y > 0) // down
            {
                //NSLog(@"user swiped down");
                [self.navigationController setNavigationBarHidden:YES animated:YES];
    
            } else if (distance.y < 0) //up
            {
                //NSLog(@"user swiped up");
                [self.navigationController setNavigationBarHidden:NO animated:YES];
            }
    
            return NO;
        } else {
            return YES;
        }
    
       [UIView commitAnimations];
    }
    return YES;
    

    【讨论】:

    • 将 UIView 动画代码放入 if 条件中(if (distance.y > 0 || distance.y
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2019-12-27
    相关资源
    最近更新 更多