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

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

  1. 我创建了一个 xib。
  2. 将顶部栏设置为 xib 中的黑色导航栏
  3. 将其添加到屏幕上:

    _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];
    
  4. UIView 出现但没有黑色导航栏。这怎么能解决?

【问题讨论】:

  • 2.Set the top bar to be Black Navigation Bar,实际上你没有。如果你仔细看,上面写着Simulated Metrics

标签: ios objective-c uiview


【解决方案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。附带说明一下,如果您确实需要导航堆栈,但只在屏幕的一部分中,您可以很容易地实现这一点 - 在这种情况下,工具栏不合适。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-16
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-04
  • 1970-01-01
相关资源
最近更新 更多