如何在Swift Xcode中创建自定义导航栏?

时间:2017-10-31 10:20:49

标签: ios swift xcode uinavigationcontroller

我正在为iOS中的毕业设计开发聊天应用程序。我设计了以下导航栏:

enter image description here

现在我正在尝试在我的Xcode项目中开发上面的图形,但我不知道这是否是实现此目的的正确方法,并且不像图形那样。

我正在使用xib文件,我使用它的实例加载到ViewController.swift中。然后将其添加为titleView的{​​{1}}:

navigationItem

这是上面代码段的结果:

enter image description here

这个结果的问题是它与左栏按钮项目和另一个问题重叠,我仍然没有想到,如果消息气泡可以有动态高度,当它有多行时(最多3行)。

enter image description here

有没有人在Xcode中有这种设计的经验,这是正确的方法,或者有更好的方法来实现这一点。也许是自定义UINavigationController类?

我希望有人可以帮助我。如果还有任何问题,请告诉我。

1 个答案:

答案 0 :(得分:4)

尝试创建您想要的整个导航视图,这意味着宽度等于视图,然后尝试使用此代码添加它

    navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
    navigationController?.navigationBar.shadowImage = UIImage()
    navigationController?.navigationBar.backgroundColor = .clear

    navigationController?.view.insertSubview(subview, belowSubview: navigationController?.navigationBar)

它会使您的导航栏变为不可见但仍显示条形按钮

更新,来自dimpiax

但最好覆盖你的UINavigationController类,并在viewDidLoad

中设置视图
navigationBar.shadowImage = UIImage()
navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationBar.backgroundColor = .clear

依赖于viewController的视图 - 显示特定视图。