创建导航栏的自定义实现
Posted
技术标签:
【中文标题】创建导航栏的自定义实现【英文标题】:Creating custom implementation of navigation bar 【发布时间】:2014-01-11 08:58:42 【问题描述】:我希望创建一个行为类似于UINavigationBar
的视图。
我不能简单地自定义栏,因为我希望空间更高,并且除了UIBarButtonItem
s 之外,我还希望在其上有几个其他子视图。所以,我希望能够创建一个类似的实现,包括浮动/半透明效果。
ios 7 中 Safari 中的地址栏就是一个很好的例子。地址栏上的UITextField
是默认UINavigationBar
上无法添加的。尽管如此,Safari 栏仍然具有透明度。
我不希望它在向下滚动时像在 Safari 中那样缩小,我只是希望它像 UINavigationBar
一样保持不变。我正在考虑向根UIScrollView
添加一个子视图,但这会随着所有内容一起滚动。我希望它保持在顶部,但我希望其他元素能够滚动。
我将如何实现这一点?
【问题讨论】:
【参考方案1】:如果您确信使用默认 UINavigationBar 无法做到这一点,您可以使用自定义 UINavigationBar 的大小(从顶部)缩小 UIScrollView,然后将导航栏作为子视图添加到根视图(0,0) 坐标。它将独立于滚动视图。
另一方面,如果您需要它在应用程序中持久化并在所有屏幕中使用它,从 AppDelegate 开始进行一些更改是明智的,但这是为了另一个问题。
对于 iOS 7 透明样式部分,请看这里:FXBlurView。祝你好运!
【讨论】:
感谢您的回复!如果我减小 UIScrollView 的大小,当我滚动时,内容将永远不会上升并通过自定义导航栏显示。有没有办法让 UIScrollView 填满整个屏幕并将自定义导航栏分层?另外,自定义导航栏到底是什么?带有背景颜色的 UILabel? 你有什么想法吗?以上是关于创建导航栏的自定义实现的主要内容,如果未能解决你的问题,请参考以下文章