是否可以在 UIView 上设置顶栏?

Posted

技术标签:

【中文标题】是否可以在 UIView 上设置顶栏?【英文标题】:Is it possible to have top bar on UIView? 【发布时间】:2013-04-18 11:25:43 【问题描述】:

我想展示一个带有标准顶栏的UIView - UIView 标题的黑色导航栏。

    我创建了一个 xib。 将顶部栏设置为 xib 中的黑色导航栏

    将其添加到屏幕上:

    _popup = [[[NSBundle mainBundle] loadNibNamed:@"Popup" owner:self options:nil] objectAtIndex:0];
    
    CGSize screenSize = [[UIScreen mainScreen] bounds].size;
    _popupBackground = [[UIView alloc]initWithFrame:
                        CGRectMake(0,0,screenSize.width,screenSize.height)];
    _paymentPopupBackground.backgroundColor = [UIColor clearColor];
    
    [_paymentPopupBackground addSubview:_popup];
    [[UIApplication sharedApplication].keyWindow addSubview:_paymentPopupBackground];
    

    UIView 出现但没有黑色导航栏。这怎么能解决?

【问题讨论】:

2.Set the top bar to be Black Navigation Bar,实际上你没有。如果你仔细看,上面写着Simulated Metrics 【参考方案1】:

导航栏适用于 UIViewControllers 而不是 UIViews。您可以使用视图顶部的工具栏并呈现它

使样式黑色不透明

【讨论】:

太棒了!是否可以让它看起来像黑色导航栏? 谢谢。正是需要的:)【参考方案2】:

要拥有一个导航栏,您只需将 viewController 嵌入到UINavigationController 中。然后你可以为你想要的外观设置 navigationController 的 tintColor。

【讨论】:

我将 UIView 直接固定到窗口。过程中没有涉及到viewController。【参考方案3】:

您可以将 UINavigationBar 添加到 UIView,但如果 UIViewController 不在导航堆栈中,则 Interface Builder 中的设置实际上不会做任何事情。

手动将 UINavigationBar 拖到 UIView 中。

只是让您知道,这可能不会为您的用户提供一致的体验,并且可能无法通过审核流程 - 如果您需要导航栏,我强烈建议您使用导航堆栈。

【讨论】:

看起来 Lithu T.V 的回答更适合这种情况。你怎么看? 我同意,UIToolbar 是迄今为止更适合用于 UIView 的控件。这完全取决于控件的用途,而 UIView 不需要 UINavigationBar。附带说明一下,如果您确实需要导航堆栈,但只在屏幕的一部分中,您可以很容易地实现这一点 - 在这种情况下,工具栏不合适。

以上是关于是否可以在 UIView 上设置顶栏?的主要内容,如果未能解决你的问题,请参考以下文章

将顶栏模糊到 UIView

在 UIView 上设置多个边框

在不改变顶栏的情况下切换 UIView

是否可以在截取uiview的屏幕截图时设置图像大小?

根据内容大小设置 UIView 的大小

设置UIView属性是否显式停止/完成在同一属性上使用UIViewPropertyAnimator启动的现有动画