我知道更多 View Controller (导航栏)的存在将 UIView 的高度向下推。我也知道这个高度 = 44px。我还发现这种下推保持了 [self.view].frame.origin.y = 0
.
那么我如何确定这个导航栏的高度,而不是仅仅将它设置为一个常数呢?
或者,更短的版本,我如何确定我的 UIView 显示在顶部的导航栏?
灯泡开始亮了。不幸的是,我还没有找到一个统一的方法来纠正这个问题,如下所述。
我相信我的整个问题都集中在我的 autoresizingMasks 上。我得出结论的原因是存在相同的症状,无论有没有 UIWebView。那个症状是肖像的一切都是桃色的。对于横向,最底部的 UIButton 在 TabBar 后面弹出。
例如,在一个 UIView 上,我从上到下:
UIView - 两个 Spring 组(默认情况)和没有支柱
UIScrollView - 如果我设置了两个 Spring ,并清除了其他所有内容(如 UIView),那么 UIButton 会侵入其正上方的对象。如果我清除所有内容,那么 UIButton 就可以了,但最顶部的东西隐藏在 StatusBar 后面 仅设置顶部支柱,UIButton 会在 Tab Bar 后面弹出。
UILabel 和 UIImage 下一个垂直 - 顶部支柱集,其他任何地方都很灵活
只是为了完成少数拥有 UIWebView 的图片:
UIWebView - Struts:上、左、右 Springs:两者
UIButton – 没有任何设置,即随处灵活
虽然我的灯泡很暗,但似乎还有希望。
请多多包涵,因为我需要比提供简短回复评论更多的空间。
感谢您尝试了解我真正在钓鱼的目的……所以就这样吧。
1)每个 UIViewController(一个 TabBar 应用程序)都有一个 UIImage、一些文本和顶部的任何内容。另一个共同点是底部的 UIButton。在一些 UIViewControllers 上,我在 UIButton 上方有一个 UIWebView。
所以,UIImage,文本等 UIWebView(在某些地方) UIButton
围绕上述所有内容的是一个 UIScrollView。
2)对于那些有 UIWebView 的,它的 autoresizingMask 看起来像:
—
|
—
^
|
|
UIScrollView *scrollViewInsideWebView = [[webView_ subviews] lastObject];
webViewContentHeight = scrollViewInsideWebView.contentSize.height;
[webView_ setFrame:CGRectMake(webViewOriginX, webViewOriginY,
sameWholeViewScrollerWidth, webViewContentHeight)]
最佳答案
做这样的事情?
NSLog(@"Navframe Height=%f",
self.navigationController.navigationBar.frame.size.height);
statusBarFrame
已在 iOS13
中弃用你可以使用这个:extension UIViewController {
/**
* Height of status bar + navigation bar (if navigation bar exist)
*/
var topbarHeight: CGFloat {
return (view.window?.windowScene?.statusBarManager?.statusBarFrame.height ?? 0.0) +
(self.navigationController?.navigationBar.frame.height ?? 0.0)
}
}
https://stackoverflow.com/questions/7312059/
相关文章:
objective-c - 取消排队的 performSelector :afterDelay ca
ios - 如何在 iOS 7 下更改 UIPickerView 中文本的颜色?
objective-c - 在objective-c中获取NSURL的一部分
ios - 在 iOS 的 UITextView 中检测属性文本的点击
objective-c - 在什么情况下,我们需要在 ARC 下编写 __autoreleasing
ios - 如何自定义分组表格 View 单元格的背景/边框颜色?