我的导航栏中有子视图。我试着通过这种方式添加它:
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会保留在该位置,而不是按照滑动导航栏设置动画。如何实现动画子视图?它甚至可能吗?谢谢!
答案 0 :(得分:0)
正在使用
[self.navigationController.navigationBar addSubview:customView];
这意味着您创建的导航栏位于App委托中,并且对于项目中的所有viewControllers都是通用的,这就是为什么一旦您向其添加视图,您就会在每个视图上看到它。删除
中的子视图-(void)viewWillDisappear:(BOOL)animated{
[Your subview remove fromSuperView];
[super viewWillDisappear:YES];
}
并在
中添加该子视图-(void)viewWillAppear:(BOOL)animated{
[self.navigationController.navigationBar addSubview:Your subview];
[super viewWillAppear:YES];
}
这将仅在该特定视图中添加子视图,并在弹出或推送该视图后立即将其删除。给出的代码与语法不正确请检查一下。
答案 1 :(得分:0)
你不应该以这种方式添加子视图 您已在左侧,右侧或标题视图
中指定了您的观看位置self.navigationItem.titleView = YOURVIEW;
或以这种方式选择其他位置左侧或右侧项目,如果您想删除标题视图,只需将其添加到当前视图中,只需将其设置为nil,然后重新加载子视图,
self.navigationItem.titleView = nil;