Flickr有一个华丽的设置视图控制器(即使他们把关闭按钮放在错误的一侧!)我想知道如何实现类似的效果。
请注意,导航控制器没有背景,但它下方有阴影线以提供分离。底层模糊视图填充整个显示,包括状态栏下方。
你将如何实现这一目标 - 如何删除UINavigationBar
的背景?请注意,您无法简单地删除背景,因为滚动时文本将显示在导航栏中。
答案 0 :(得分:0)
使用UILabel
代替导航栏(他们可能会做同样的事情,从栏的高度来判断)。阴影线只是另一个视图,具有适当的背景颜色。
答案 1 :(得分:0)
隐藏背景图像确实会在滚动时显示不合适的文本。我想你可以尝试实现这一目的的一种方法是不将ScrollView扩展到NavBar下?另一种方法是使用初始视图的快照创建背景,并使用它作为navBar的背景图像 - 希望有所帮助。
答案 2 :(得分:0)
我能够通过首先阻止表视图控制器来获得所需的行为。通过“扩展边缘”选项从顶部导航栏下方扩展内容。
要删除导航栏的外观,我将其设为黑色半透明条,然后为其背景图像添加了一个新的空白图像,如下所示:
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
然后,我将导航控制器嵌入到容器视图中,该视图嵌入在常规视图控制器中,并设置了自动布局约束,以便容器视图填充视图。这允许我在视图控制器中创建模糊效果,然后从表视图控制器中删除背景颜色,以便在整个导航过程中看到这种模糊效果。这是设置:
UIViewController
containerView
UINavigationController
UITableViewController ->
UITableViewController ->
UITableViewController...