1

我有一个导航栏,我想用图像来改变它,我正在实现这个代码

self.navBar.layer.contents = (id)[UIImage imageNamed:@"flower.png"].CGImage;

但背景仍然没有改变。导航栏的层次结构是: - UINavigationBar - UINavigationItem - UISegementControl

我已经在那个层次结构的每个部分都设置了一个出口..有什么问题吗???

4

1 回答 1

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 的按钮和标签。

于 2011-01-03T21:45:32.473 回答