我知道更多视图控制器(导航栏)的存在将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的高度。
好吧,你有它。