我知道更多视图控制器(导航条)的出现会使 UIView 的高度下降。我还知道这个高度 = 44px。我还发现,这种下推维持 [self.view].frame.origin.y = 0
。
那么,除了将导航条设置为常量之外,如何确定导航条的高度呢?
或者,更短的版本,我如何确定我的 UIView 显示的导航栏在顶部?
灯泡开始亮了。不幸的是,我还没有找到一种统一的方法来纠正这个问题,如下所述。
我相信我的整个问题集中在我的自动调整面具。我得出结论的原因是同样的症状存在,不管有没有 UIWebView。这个症状就是肖像画的一切都很美好。对于横向,最底部的 UIBButton 弹出在标签栏后面。
例如,在一个 UIView 上,我从上到下看到:
UIView-既设置了弹簧(默认情况下)又没有 Struts
UIScrollView-如果我设置了两个弹簧,并清除了其他所有东西(如 UIView) ,那么 UIButton 就会侵入它上面的对象。如果我清除一切,那么 UIButton 是可以的,但是在最顶部的东西隐藏在 StatusBar 设置后面,只有顶部的支柱,UIButton 弹出到 Tab Bar 后面。
UILabel 和 UIImage 下一个垂直顶部支柱集,其他地方都很灵活
只是为了完成少数拥有 UIWebView 的用户:
UIWebView-Struts: 顶部,左边,右边
UIButton-没有设置,也就是说,到处都是灵活的
虽然我的灯泡很暗,但似乎还有希望。
请容忍我,因为我需要更多的空间比提供一个简短的回复意见。
谢谢你试着去理解我真正想要的是什么... 所以我要开始了。
1)每个 UIViewController (一个 TabBar 应用程序)上都有一个 UIImage,一些文本和其他东西。另一个公分母是底部的 UIButton。在一些 UIViewController 上,我在 UIButton 上面有一个 UIWebView。
所以,UIImage,text 等等
围绕以上所有内容的是一个 UIScrollView。
2)对于那些拥有 UIWebView 的用户,它的自动调整大小面具看起来像这样:
—
|
—
^
|
|
| ー | ——→ | ー | | | V UIButton 的面具没有任何设置,也就是说,到处都有弹性
在 my-viewDidLoad 中,我调用 my-reposition Subviews,在其中执行以下操作:
如果没有 UIWebView,除了将放置在 IB 中的 UIButton 居中外,我什么也不做。
如果我有一个 UIWebView,那么我确定它的 * content * 高度,并设置它的框架来包围整个内容。
UIScrollView *scrollViewInsideWebView = [[webView_ subviews] lastObject];
webViewContentHeight = scrollViewInsideWebView.contentSize.height;
[webView_ setFrame:CGRectMake(webViewOriginX, webViewOriginY,
sameWholeViewScrollerWidth, webViewContentHeight)]
一旦我这样做了,然后我通过编程将 UIButton 向下推,使它最终位于 UIWebView 的下方。
一切工作,直到我旋转它从肖像到景观。
我在 my-diRotateFromInterfaceDirecting 中调用 my-reposition SubView。
为什么我的 UIWebView 的内容高度不随着旋转而改变。
从肖像到风景,内容的宽度应该扩大,内容的高度应该缩小。它的视觉效果是应该的,但不是根据我的 NSLog。
无论如何,不管有没有 UIWebView,我说过的按钮在横向模式下都会移动到 TabBar 下方,但是它不会向上滚动让人看到。当我“使劲”滚动时,我看到它在 TabBar 后面,但随后它又“回落”在 TabBar 后面。
底线是,最后一点就是我询问 TabBar 和 NavigationBar 高度的原因,因为 TabBar 将自己置于 UIView 的底部,而 NavigationBar 将 UIView 向下推。
现在,我要在这里添加一两条评论,因为它们之前是没有意义的。
在没有 UIWebView 的情况下,我保留了 IB 所看到的一切。
使用 UIWebView,我将 UIWebView 的 frame.height 增加到 contentHeight,并向上调整包围所有子视图的周围 UIScrollView 的高度。
这就是了。