我有一个导航栏,我想用图像更改它,我实现了这个代码
self.navBar.layer.contents = (id)[UIImage imageNamed:@"flower.png"].CGImage;
但背景仍未改变。导航栏的层次结构是: - UINavigationBar - UINavigationItem - UISegementControl
我已经在该等级的每个部分设置了一个出口.. 有什么不对吗???
答案 0 :(得分:1)
以下是我成功使用的内容:
CALayer *backgroundImageLayer;
backgroundImageLayer = [CALayer layer];
backgroundImageLayer.frame = CGRectMake(0, 0, 300, 44);
backgroundImageLayer.backgroundColor = [UIColor redColor].CGColor;
backgroundImageLayer.contents = (id)[[UIImage imageNamed:@"barImage.png"] CGImage];
backgroundImageLayer.zPosition = -5.0;
[myNavigationConroller.navigationBar.layer addSublayer:test];
关键是将zPosition设置为-5.0,尽管任何负值都应该有效。它导致backgroundImageLayer 不干扰UINavigationBar的按钮和标签。