【发布时间】:2017-07-05 01:45:06
【问题描述】:
我是 iOS UI 设计的新手,我正在编写代码来显示高度自定义的导航栏,这将用于我的交通应用程序。
以下是我的导航栏的功能(见下图):
-
Layout Margins是18,其子视图之间的Space是9。 - 其所有子视图的
height均为44,且所有UIBarButtonItem均为矩形。 -
backBarButtonItem的位置应与leftBarButtonItem相同。 -
正常状态,其
height为80。 - 在展开状态(如地图应用程序中的方向字段视图),它的
titleView将包含两个UITextFields,所以它的height应该是136。
查看真实设计截图
所以我声明了UINavigationBar 的子类,并使用身份检查器将自定义类连接到情节提要中的Navigation Bar 对象。但是,我不确定从哪里开始。尽管我暂时覆盖了sizeThatFits(_ size:) 函数以使其height 长,但子视图接近底部。我找不到自定义 UINavigationBar 的最佳做法,例如 Google 地图、Uber 等。
如何通过子类化UINavigationBar 来实现这样的导航栏?或者有其他解决方案吗?
【问题讨论】:
-
不推荐子类化
UINavigationBar。您应该探索UIAppearance类以获得所需的用户界面。 -
我喜欢你上面的设计截图,你是怎么做到的?
-
你为什么不直接使用一个简单的视图并在其中添加想要的子视图呢?在我看来,这是做你想做的事情的更简单有效的方法。
-
@Adeel 谢谢!但是,当我按下/弹出另一个导航项时,子视图仍然存在。
-
能分享一下截图什么的吗?
标签: ios swift user-interface uikit