objective-c - 自定义导航栏样式 - iOS

标签 objective-c cocoa-touch ios uinavigationbar

Possible Duplicate:
How to add background image on iphone Navigation bar ?

iOS - 纽约时报是如何做这种自定义顶部导航栏样式的?

那么,最底层的呢?

ny-times

最佳答案

@ludwigschubert 的解决方案确实适用于 iOS 5。覆盖 -drawRect: 也不起作用,因为它甚至没有被调用。
从 iOS 5 开始,导航栏由 UINavigationBarBackgroundUINavigationItemView 组成。还有其他两种方法可以让它发挥作用。


  1. index 1 而不是 0 处插入您的自定义 ImageView 。这使它显示在原生背景图像上方,同时保持在按钮下方。

  2. 利用 iOS 5 的 UIAppearance协议(protocol)。您可以为所有设置背景图片

[[UINavigationBar 外观] setBackgroundImage:myImage forBarMetrics:UIBarMetricsDefault]

或仅用于一个导航栏:

[navigationController.navigationBar setBackgroundImage:myImage forBarMetrics:UIBarMetricsDefault]

在为纵向和横向开发 iPhone 应用程序时,请确保提供两个图像(UIBarMetricsDefault 和 UIBarMetricsLandscapePhone)

关于objective-c - 自定义导航栏样式 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5575821/

相关文章:

ios - 如果我以编程方式创建 View 并将它们添加到 View 层次结构中,为什么它们需要成为强引用?

ios 核心数据谓词搜索相似词

objective-c - 如何更改单个 View 的亮度

ios - 动态创建和添加按钮到 ScrollView

ios - 如果文件存在,则不保存到文件 NSFileManager

iphone - 在iOS App中执行Google身份验证后如何进行

objective-c - 如何在 Swift 中传递 Raw Json 来发布请求?

objective-c - 应用 CGAffineTransform 后从 imageview 获取新的图像尺寸

ios - 以编程方式执行 segue 时没有动画

ios - 是否可以为 MKMapView 上的用户定位 Pin 设置固定的屏幕位置?