ios - 如何让navigation Bar平滑的移动到它的位置之上,

标签 ios uiscrollview uinavigationcontroller uinavigationbar

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

Image1 before tapping

Image2 after tapping

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

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

这会变得太笨拙。我什至准备这样做。但是如何通过动画增加我的 ScrollView 大小,这样看起来 ScrollView 大小不会随着我点击某些东西而立即增加。如果有第三方提供我想要的所有东西,请告诉我。大多数第三方代码要么难以获得,要么无法提供我在项目中需要的所有内容。对我添加图像的方式感到抱歉。

最佳答案

动画 ScrollView 框架中的变化: 像这样的东西:

- (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;
    }];
}

关于ios - 如何让navigation Bar平滑的移动到它的位置之上,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21267187/

相关文章:

iOS – 带平铺背景的分组 UITableView 显示不正确

ios - 为什么 UINavigationController 在容器 View 中有意外的大小?

ios - 带有 Autolayout iOS 的 scrollView 中的 UITextView 不工作

ios - 为什么我的 "pull down to load data"卡在第 2 页而没有加载更多数据

uinavigationcontroller - 应用商店导航栏功能

ios - 如何创建像 BestBuy App 这样的自定义导航栏?

ios - 如何修复 xamarin iOS 链接器以防止删除代码以防止应用程序崩溃?

iphone - UIScrollView 初始化为 {0, 0} 处的框架,但宽度和高度为 {0, 0}

ios - 导航图 block 文本颜色未更改

ios - 在实际需要频繁释放大量内存的应用程序中长时间使用 NSZombies