当前位置: 首页 > 面试题库 >

以编程方式获取导航栏的高度

柴修筠
2023-03-14
问题内容

我知道更多视图html" target="_blank">控制器(导航栏)的存在将UIView按其高度向下推。我也知道这个高度=
44px。我还发现,这种下推保持了[self.view].frame.origin.y = 0

因此,除了将其设置为常数之外,如何确定此导航栏的高度?

或者,较短的版本,如何确定我的UIView显示在导航栏的顶部?

灯泡开始点亮。不幸的是,如下所述,我还没有发现纠正问题的统一方法。

我相信我的整个问题都围绕着我的自动调整大小掩码。我得出的结论是,无论是否使用UIWebView,都存在相同的症状。症状是,对于Portrait来说,一切都是桃红色的。对于Landscape,最底部的UIButton在TabBar后面弹出。

例如,在一个UIView上,我从上到下都有:

UIView –既设置了弹簧(默认情况),也没有支柱

UIScrollView-
如果我设置了两个弹簧,并清除了所有其他内容(如UIView),则UIButton会侵入其上方的对象。如果我清除所有内容,则UIButton可以,但是最顶部的内容隐藏在StatusBar的后面。仅设置顶部支柱,UIButton向下弹出在Tab栏的后面。

UILabel和UIImage垂直向下–顶部支撑杆设置,其他位置均可灵活使用

只是为了完成一些具有UIWebView的图片:

UIWebView-支撑杆:顶部,左侧,右侧弹簧:两者

UIButton –没有设置,即到处都灵活

尽管我的灯泡昏暗,但似乎仍然充满希望。

请多多包涵,因为我需要的空间比简短回复的评论要多。

感谢您尝试了解我真正在钓鱼的目的…

1)每个UIViewController(一个TabBar应用)都有一个UIImage,一些文本以及其他内容。另一个共同点是底部的UIButton。在某些UIViewController上,我在UIButton上方有一个UIWebView。

因此,UIImage,文本等。UIWebView(在某些情况下)UIButton

以上所有内容都是一个UIScrollView。

2)对于具有UIWebView的用户,其autoresizingMask如下所示:

   —
   |
   —

   ^
   |
   |

| — | ←----→| — || | | V UIButton的遮罩没有设置,即到处都是灵活的

在我的-viewDidLoad中,我调用我的-repositionSubViews,在其中执行以下操作:

如果没有UIWebView,则除了将放置在IB中的UIButton居中之外,我什么也不做。

如果我确实有UIWebView,则确定其* content * Height并将其框架设置为封闭整个内容。

UIScrollView *scrollViewInsideWebView = [[webView_ subviews] lastObject];
webViewContentHeight = scrollViewInsideWebView.contentSize.height;
[webView_ setFrame:CGRectMake(webViewOriginX, webViewOriginY,
                          sameWholeViewScrollerWidth, webViewContentHeight)]

完成此操作后,我将以编程方式向下推UIButton,以使其最终放置在UIWebView下方。

一切正常,直到我将其从纵向旋转为横向。

我在-didRotateFromInterfaceOrientation中将我的-repositionSubViews调用。

为什么UIWebView的内容高度不会随旋转而改变?

从纵向到横向,内容宽度应扩大,内容高度应缩小。它在视觉上应有的表现,但根据我的NSLog却没有。

无论如何,无论是否使用UIWebView,我所说的按钮在“横向”模式下都移至TabBar下方,但不会向上滚动以显示出来。当我“大力”滚动时,我在TabBar的后面看到它,但随后它在TabBar的后面“回退”。

总之,这是我问起TabBar和NavigationBar的高度的原因,因为TabBar自身位于UIView的底部,而NavigationBar将UIView向下推。

现在,我将在此处添加一两个评论,因为它们早些时候就没有意义了。

没有UIWebView,我将保留IB所见的一切。

使用UIWebView时,我将UIWebView的frame.height增加到其contentHeight,并且还向上调整围绕所有子视图的周围UIScrollView的高度。

好吧,你有它。


问题答案:

灯泡开始点亮。不幸的是,如下所述,我还没有发现纠正问题的统一方法。

我相信我的整个问题都围绕着我的自动调整大小掩码。我得出的结论是,无论是否使用UIWebView,都存在相同的症状。症状是,对于Portrait来说,一切都是桃红色的。对于Landscape,最底部的UIButton在TabBar后面弹出。

例如,在一个UIView上,我从上到下都有:

UIView –既设置了弹簧(默认情况),也没有支柱

UIScrollView-
如果我设置了两个弹簧,并清除了所有其他内容(如UIView),则UIButton会侵入其上方的对象。如果我清除所有内容,则UIButton可以,但是最顶部的内容隐藏在StatusBar的后面。仅设置顶部支柱,UIButton向下弹出在Tab栏的后面。

UILabel和UIImage 垂直向下–顶部支撑杆设置,其他位置均可灵活使用

只是为了完成一些具有UIWebView的图片:

UIWebView-支撑杆 :顶部,左侧,右侧弹簧:两者

UIButton –没有设置,即到处都灵活

尽管我的灯泡昏暗,但似乎仍然充满希望。



 类似资料:
  • 问题内容: 我一直在寻找这种解决方案已有一段时间,但是没有任何解决方案。例如一个解决方案是 此代码将添加带有“停止”图像的按钮。就像这样,还有其他解决方案,例如“搜索,刷新”等。但是 ,如果我想以编程方式在想要的图像上添加按钮,该怎么办? 问题答案: 自定义按钮图片,未设置按钮框: 您可以使用指定的图像和其他属性来初始化新项目。 检查此Apple文档。参考 UIBarButtonItem具有使用按

  • 问题内容: 我正在尝试使用导航栏(“后退”按钮,标题等)和选项卡栏(底部的工具栏)制作一个应用程序。我使用的是子视图,因此不必担心状态栏,导航栏,标签栏的高度等问题。但是我认为这给我带来了麻烦,因为我似乎无法弄清楚如何设置导航栏和标签栏。 这就是我所拥有的。我究竟做错了什么? AppDelegate.h AppDelegate.m ViewController.h ViewController.m

  • 本文向大家介绍Android编程获取通知栏高度的方法,包括了Android编程获取通知栏高度的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程获取通知栏高度的方法。分享给大家供大家参考,具体如下: 这里通过反射机制获取通知栏高度 通知栏高度写在dimen文件中: 希望本文所述对大家Android程序设计有所帮助。

  • 我尝试通过主题或编程方式更改导航栏的颜色。 以下是我到目前为止所做的尝试: 在样式v21中: 以编程方式: 问题是:它在Nexus设备(Android 7.1.1)上运行得很好,但在LG Q6上运行得不好(同样适用于Android 7.1.1)。 我认为有办法做到这一点(因为Youtube应用程序有自己的导航栏颜色),但我不知道怎么做。 我也尝试了几乎所有的东西,这里,这里,这里和这里,都没有成功

  • 问题内容: 我有一个带有标题的导航栏。当我双击文本以将其重命名时,它实际上说这是一个导航项,所以可能就是这样。 我正在尝试使用代码来更改文本,例如: 那显然不是我的代码,只是显示了它是如何工作的。 因此,每当我按下按钮时,我都希望标题更改。 问题答案: 您可以通过更改显示的视图控制器的标题来更改标题: 通常,这是在视图控制器上加载视图时完成的: 但是,这仅在将视图控制器嵌入UINavigation

  • 问题内容: 通过使用我可以使用元素创建由React Router本机处理的链接。 我在内部看到它的呼唤。 我想导航。不是来自链接,而是来自下拉菜单(例如)。如何在代码中执行此操作?什么啊 我看到了mixin,但是如果没有,我可以这样做吗? 问题答案: 带有钩子的React Router v5.1.0 如果您使用React> 16.8.0和功能组件,则React Router> 5.1.0中会有一个