Objective c 将UINavigationBar的外观从实心更改为透明
我想实现与iPad上的Photos应用程序完全相同的效果:在gallery控制器中使用纯黑的导航条,然后在查看照片时透明 在AppDelegate中初始化导航控制器后,我可以使用以下代码更改样式,但不能在AppDelegate之外。但是,一旦导航控制器出现在屏幕上并设置一次,navigationBar将成为只读属性 如果有人能分享如何做到这一点,我将不胜感激。谢谢Objective c 将UINavigationBar的外观从实心更改为透明,objective-c,uinavigationcontroller,uinavigationbar,Objective C,Uinavigationcontroller,Uinavigationbar,我想实现与iPad上的Photos应用程序完全相同的效果:在gallery控制器中使用纯黑的导航条,然后在查看照片时透明 在AppDelegate中初始化导航控制器后,我可以使用以下代码更改样式,但不能在AppDelegate之外。但是,一旦导航控制器出现在屏幕上并设置一次,navigationBar将成为只读属性 如果有人能分享如何做到这一点,我将不胜感激。谢谢 self.navigationController.navigationBar.tintColor = [UIColor c
self.navigationController.navigationBar.tintColor = [UIColor clearColor];
self.navigationController.navigationBar.translucent = YES;
self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
uibarstyleblacktransparent
barStyle
中的UINavigationBar不像在其他样式中那样固定其位置。在uibarstyleblacktransparent
样式中,它只会在视图上重叠,视图内容会向上转换,view
高度也会增加
如果要显示照片,请先隐藏导航栏:
[[self navigationController] setNavigationBarHidden:YES animated:NO];
现在将导航栏的样式设置为uibarstyleblacktransparent
[self.navigationController.navigationBar setBarStyle:UIBarStyleBlackTranslucent];
然后显示您的imageview(或带有图片的滚动视图-取决于您的逻辑)。然后点击图像视图,可以显示和隐藏栏)
希望这样就行了。退出gallery后,请不要忘记将导航栏样式重新设置为UIBarStyleBlack不透明。似乎您希望在gallery中显示导航栏,因此无需更改任何内容,但选择照片后,请将导航栏隐藏在PhotoViewController中
-(void) viewDidLoad
{
self.navigationController.navigationBar.barStyle=UIBarStyleBlackTranslucent;
self.navigationController.navigationBar.hidden = NO;
}
并且在视图中将出现
-(void) viewWillAppear
{
self.navigationController.navigationBar.hidden = YES;
}
然后创建一个实现UITapGestureRecognitizer的自定义方法,通过将hidden属性设置为YES,只需轻触即可显示导航栏。这是不透明的,它实际上隐藏了导航栏。.YES,它最初隐藏了导航栏。但点击会显示一个透明的导航栏,后面有照片。谢谢,你是一个传奇。我必须说,这是一个奇怪的方式让它工作。
-(void) viewWillAppear
{
self.navigationController.navigationBar.hidden = YES;
}