导航栏和它的titleView rightBarButtonItem随着动画变得更小

     2023-03-12     162

关键词:

【中文标题】导航栏和它的titleView rightBarButtonItem随着动画变得更小【英文标题】:navigationBar and it's titleView rightBarButtonItem became smaller with animation 【发布时间】:2013-12-31 07:12:50 【问题描述】:

在正常状态下,用户界面就像跟随

当 tableview 向上滑动时,我希望导航栏变小并带有动画。 像follow这样的代码

CABasicAnimation *shake = [CABasicAnimation animationWithKeyPath:@"transform"];
shake.duration = DURATION_TIME;

shake.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0, 1.0 ,1.0)];
shake.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0, 0.5, 1.0)];

shake.removedOnCompletion = NO;
shake.fillMode = kCAFillModeForwards;

[self.navigationController.navigationBar.layer addAnimation:shake forKey:@"shakeAnimation"];

动画UI后喜欢关注

我不想改变导航栏的 y 位置。而titleView和rightbarItem变平了,如何避免变平呢?

【问题讨论】:

你能告诉我你想要什么吗?你想让navigationBar的高度减半而y位置不变吗? @KudoCC 是的,你说的是我想要的,我也希望 titleview 不会只改变平面比例。 【参考方案1】:

试试下面的代码。它在ios7之前工作

UIView * testView = self.navigationController.navigationBar ;
CGRect frame = testView.layer.frame ;
testView.layer.anchorPoint = CGPointMake(0.5f, 0.0f) ;
testView.layer.frame = frame ;

[UIView animateWithDuration:1.0 animations:^
    CABasicAnimation *shake = [CABasicAnimation animationWithKeyPath:@"transform"];
    shake.duration = 1.0;

    shake.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0, 1.0 ,1.0)];
    shake.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0, 0.5, 1.0)];

    shake.removedOnCompletion = NO;
    shake.fillMode = kCAFillModeForwards;

    [testView.layer addAnimation:shake forKey:@"shakeAnimation"];
];

【讨论】:

先谢谢你。我试过你的代码,但titleview有明显的跳跃,它也变平了。 @Dracuuula 我已经编辑了我的答案,但我很困惑你为什么想要这个。 我认为 OP 正在尝试模拟 iOS 7 中 Safari 的行为,其中导航栏在滚动过程中会增大和缩小。 @AaronBrager 如果是这样,我认为他最好使用自定义UIView 而不是UINavigationBar @KudoCC 在我尝试了一些方法之后,自定义 UIView 而不是 UINavigationBar 是最好的

使用多个搜索栏和交互式弹出手势时导航项视图消失

...描述】:我在UINavigationControllers中使用多个UISearchBar作为titleViews嵌入在UITabBarController中 查看详情

UINavigation titleView 错误

】UINavigationtitleView错误【英文标题】:UINavigationtitleViewbug【发布时间】:2016-09-2106:41:46【问题描述】:如果我给导航titleView设置了一个搜索栏,比如navigationController?.navigationBar.topItem?.titleView=self.searchBar,但我使用自动布局设置它... 查看详情

隐藏导航栏和标签栏后 UICollectionView 框架发生变化

】隐藏导航栏和标签栏后UICollectionView框架发生变化【英文标题】:UICollectionViewframechangesafterhideNavBarandTabBar【发布时间】:2014-04-1710:50:24【问题描述】:我试图保留我用作照片库的CollectionView的frame。但是在视图中隐藏UITabBarControl... 查看详情

操作栏和导航抽屉 - 使用 Activity/Fragment 滑动操作栏

】操作栏和导航抽屉-使用Activity/Fragment滑动操作栏【英文标题】:ActionbarandNavigationdrawer-slideActionbarwithActivity/Fragment【发布时间】:2013-09-0403:45:07【问题描述】:我正在使用导航抽屉,如here:AndroidExample所示。目前,Actionbar是静态... 查看详情

viewController.titleView 全宽在过渡时闪烁

】viewController.titleView全宽在过渡时闪烁【英文标题】:viewController.titleViewfullwidthblinkingontransition【发布时间】:2017-02-1617:50:45【问题描述】:我有一个用于navigationItem.titleView的自定义视图(不是UIButton),我做了一个小技巧,通... 查看详情

手动设置导航Item的titleView不垂直对齐

】手动设置导航Item的titleView不垂直对齐【英文标题】:manuallysettingtitleViewofnavigationItemisnotallignedvertically【发布时间】:2017-08-2810:22:52【问题描述】:我在UIViewController扩展中使用这个函数来添加一个调整字体以适应宽度的标题。e... 查看详情

如何修复titleView在过渡期间被隐藏到导航栏?

】如何修复titleView在过渡期间被隐藏到导航栏?【英文标题】:HowtofixtitleViewbeingmaskedtonavigationbarduringtransition?【发布时间】:2013-11-1220:16:06【问题描述】:在我的视图控制器中,我将titleView设置为UIView,其中包含UIImageView,在其... 查看详情

UINavigationItem:用 TitleView 水平填充容器

】UINavigationItem:用TitleView水平填充容器【英文标题】:UINavigationItem:FillcontainerhorizontallywithTitleView【发布时间】:2017-03-2613:26:57【问题描述】:我正在尝试在xcode界面生成器中设计导航控制器的导航栏。但是,我无法正确定位导... 查看详情

自定义导航栏 titleView 在加载新标题之前不会清除以前的标题

】自定义导航栏titleView在加载新标题之前不会清除以前的标题【英文标题】:CustomnavbartitleViewwon\'tclearprevioustitlesbeforeloadingnewones【发布时间】:2012-03-0903:02:43【问题描述】:所以我创建了一个自定义UINavigationItem类别,以便能够... 查看详情

没有导航器导航栏没有显示titleview(代码片段)

...crosoft.com/winfx/2009/xaml"x:Class="amici.MyGroups"><NavigationPage.TitleView><StackLayoutOrientation="Horizontal"VerticalOptions="Center"Spacing="10"><LabelHorizontalOptions="StartAndExpand"Text="Left"/><LabelHorizontalOptions="CenterAndExpand"Text="Center"/><LabelHor... 查看详情

标题栏和导航栏

标题栏 导航栏:   查看详情

navigationitem的设置和titleview的设置

设置导航栏中间的标题  self.navigationItem.title=@"title";设置导航栏的主题颜色self.navigationBar.barTintColor=[主题色];设置导航栏的标题文字颜色  [self.navigationController.navigationBarsetBarTitleTextAttributes:@{NSF 查看详情

导航栏和内容之间的空间

】导航栏和内容之间的空间【英文标题】:Spacebetweennavbarandthecontent【发布时间】:2016-08-1620:20:23【问题描述】:我想摆脱内容和导航栏之间的空间,我该怎么做?请告诉我如何做到这一点,我是CSS和html的新手。我还尝试了图像... 查看详情

android显示、隐藏状态栏和导航栏

参考技术AAndroid显示、隐藏状态栏和导航栏控制状态栏显示,Activity的主题中配置全屏属性控制状态栏显示,在setContentView之前设置全屏的flag控制状态栏显示,在任何位置通过添加和移除全屏的flag控制状态栏和导航栏显示,setSyst... 查看详情

iOS:状态栏和导航栏:空格或底层

】iOS:状态栏和导航栏:空格或底层【英文标题】:iOS:StatusbarandNavigationbar:SpaceorUnderlaying【发布时间】:2013-08-0513:26:57【问题描述】:如何以规范的方式操作状态栏和导航?所以,我的目标是同时隐藏和显示状态栏和导航栏。我... 查看详情

如何一起使用底部导航栏和侧边导航栏,我的侧边导航按钮不显示,而是底部导航

】如何一起使用底部导航栏和侧边导航栏,我的侧边导航按钮不显示,而是底部导航【英文标题】:Howtousebottomnavigationbarandsidenavigationbartogether,mysidenavigationbuttonisnotshowingwhenibutbottomnavigation【发布时间】:2020-01-2910:54:24【问题描述... 查看详情

隐藏导航栏和内容之间的分隔线

】隐藏导航栏和内容之间的分隔线【英文标题】:HidesepartorlinebetweennavigationBarandContent【发布时间】:2015-09-0813:22:16【问题描述】:我想删除这个连接(导航栏和ImageView橙色之间的线):有人知道怎么做吗?【问题讨论】:我不... 查看详情

NavigationItem Titleview 以 IOS 7 下的导航栏为中心 - 不可能?

】NavigationItemTitleview以IOS7下的导航栏为中心-不可能?【英文标题】:NavigationItemTitleviewcenteredonthenavigationbarunderIOS7-impossible?【发布时间】:2013-12-1108:54:46【问题描述】:我问的是通常的答案,修改viewDidLayoutSubviews中的框架不起作... 查看详情