【问题标题】:how to make navigation Bar move above its position smoothly,如何使导航栏顺利移动到其位置之上,
【发布时间】:2014-02-11 13:57:42
【问题描述】:

我使用 UIScrollView 来显示内容(图像)。我没有使用任何第三方代码。我的滚动器和缩放工作正常(以前不工作)。现在我想添加一个功能,只需触摸屏幕(即点击一次),导航栏就会上升,如图 2 所示。我想同时增加 UIscrollview 的大小,如图 2 所示。如果用户再次点击 Navigation Bar ,回到原来的位置,scrollView 恢复到原来的大小和形状。我的滚动视图包含水平滚动的图像。

为导航栏显示动画的一种方法是,我制作了一个自定义视图并将其添加到导航栏的位置,并使用以下代码进行动画 向上移动

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.3];
    customNavigationbar_view.frame=CGRectMake(0, -66, 320, 65);
    [UIView commitAnimations];

这会变得太笨拙。我什至准备这样做。但是如何通过动画增加我的滚动视图大小,这样滚动视图大小似乎不会立即增加我点击的东西。如果有第三方提供我想要的所有东西,请告诉我。大多数第三方代码要么很难获得,要么他们没有提供我在项目中需要的所有东西。很抱歉我添加图片的方式。

【问题讨论】:

  • 你试过UINavigationController的setNavigationBarHidden:animated:方法吗?
  • @titaniumdecoy 非常感谢。它解决了我当前问题的 50%。如何显示 MY SCROLLVIEW 的过渡,我必须显示过渡及其增加的大小。对不起,如果我不能正确说明
  • 你在 UIScrollView 上设置了 UIViewAutoresizingFlexibleHeight 吗?
  • @titaniumdecoy 对此一无所知,只是查看了谷歌,stackoverflow,发现了这个 [scrollView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];它也不适合我

标签: ios uiscrollview uinavigationcontroller uinavigationbar


【解决方案1】:

动画滚动视图框架中的变化: 比如:

- (void) tap:(UITapGestureRecognizer *)gr {
    [self.navigationController setNavigationBarHidden: YES animated: YES];
    [UIView animateWithDuration:1.0 animations:^{
        CGRect frame = self.scrollView.frame;
        frame.origin.y = 0;
        frame.size.height = self.view.bounds.size.height; // or whatever you need to keep it from moving up
        self.scrollView.frame = frame;
    }];
}

【讨论】:

    【解决方案2】:

    你应该使用:

    [self.navigationController setNavigationBarHidden: YES animated: YES];
    

    Apple Docs

    要使您的scrollView 与导航栏一起移动,您需要将您的自动布局设置为将scrollView 的顶部固定到viewContoller 视图的顶部。

    【讨论】:

    • 非常感谢。它解决了我当前问题的 50%。如何显示 MY SCROLLVIEW 的过渡,我必须显示过渡及其增加的大小。正如我在上面添加的图像中所示。对不起,如果无法正确说明
    • 对不起,我没有多少经验。有没有这样做的示例代码示例?
    猜你喜欢
    • 2011-10-28
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多