首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在导航栏中动画子视图?

如何在导航栏中动画子视图?
EN

Stack Overflow用户
提问于 2012-11-11 21:56:18
回答 2查看 915关注 0票数 0

我的导航栏中有一个子视图。我试着这样添加它:

代码语言:javascript
运行
复制
  UIView *customView =
  [[UIView alloc] initWithFrame:
                  CGRectMake(0, 0, image.size.width + label.frame.size.width, 44)];
  UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
  [customView addSubview:imageView];
  [customView addSubview:label];
  [self.navigationController.navigationBar addSubview:customView];

但是,当我试图推动导航栏时,customView停留在原地,没有跟随滑动导航栏进行动画。如何实现动画化的子视图?这有可能吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-12 02:34:03

您不应该以这种方式添加子视图

您必须在left、right或title view中指定视图位置

self.navigationItem.titleView =您的视图;

或者选择另一个位置左侧或右侧的项目,这样标题视图将添加到当前视图,如果您想要删除它,只需在您想要的位置将其设置为零,然后再次重新加载它的子视图。

self.navigationItem.titleView = nil;

票数 0
EN

Stack Overflow用户

发布于 2012-11-12 01:07:08

因为您正在使用

代码语言:javascript
运行
复制
  [self.navigationController.navigationBar addSubview:customView];

这意味着你创建的导航栏是在应用程序委托中的,并且对你项目中的所有viewControllers都是通用的,这就是为什么一旦你在上面添加了一个视图,你就会在你拥有的每个视图上看到它。删除中的子视图

代码语言:javascript
运行
复制
-(void)viewWillDisappear:(BOOL)animated{
[Your subview remove fromSuperView]; 
[super viewWillDisappear:YES];
} 

并将该子视图添加到

代码语言:javascript
运行
复制
-(void)viewWillAppear:(BOOL)animated{
[self.navigationController.navigationBar addSubview:Your subview];

 [super viewWillAppear:YES];

}

这将仅在该特定视图中添加子视图,并在该视图弹出或给定的pushed.The代码语法不正确时立即删除它,请对此进行检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13331758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档