标签: uinavigationbar

IOS7:UINavigationController中的UIScrollView偏移量

我目前正在ios 7上迁移我的应用程序,并且我已经在新的导航控制器/栏管理上被困了几个小时.

之前,当我们有导航控制器时,我们有一个这样的片段:

UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:[[MainViewController alloc]init]];
Run Code Online (Sandbox Code Playgroud)

在界面构建器中,我们可以选择为视图设置现有导航栏,并且所有内容都与实际视图的内容相匹配.

好的,现在,我不知道如何使用界面构建器正确设计.我仍然有我的片段来初始化我的navcontroller.但是在我的MainViewController的界面构建器中,如果我将状态栏设置为半透明或不透明的导航栏,我的顶部偏移量为44px(见下文).


Interface Builder_________________________和结果


现在,如果我将状态栏设置为无,则顶部没有偏移,但由于导航栏导致模拟器上的视图较小,因此界面构建器中视图的底部被切断.

Interface Builder_________________________和结果

我想我真的在这里遗漏了一些东西,但我在iOS7 Transitions Guide中找不到任何主题或苹果信息.

谢谢你的帮助


编辑

正如我们在图片中看到的那样,视图的第一个子节点是包含两个标签的UIScrollView,当没有scrollview时,问题不会出现.如果它是UITableView也会出现.如果标签位于UIScrollView之外,则该标签没有偏移量.

uinavigationbar uinavigationcontroller ios7

126
推荐指数
3
解决办法
5万
查看次数

如何在iOS 7中制作完全透明的导航栏

我希望我的应用程序中的UINavigationBar完全透明,并在其下直接与viewcontroller刷新.但是,我能找到的唯一代码使它半透明但不透明.我知道这可以在iOS 7中完成,因为它在笔记应用程序中使用.我的问题是,他们用来做什么代码?

transparency cocoa-touch uinavigationbar translucency

126
推荐指数
5
解决办法
8万
查看次数

看到iPhone X Simulator顶部和底部的黑条

在iPhone X模拟器(GM Seed)中运行我的应用程序我注意到两个奇怪的效果:

  • 应用程序不使用全屏空间(顶部和底部区域为黑色)
  • 标题栏下面有一个奇怪的白条

在此输入图像描述

有谁知道这里发生了什么以及如何解决这个问题?我在Interface Builder中找不到任何新设置.

uinavigationbar ios ios-simulator xcode9 iphone-x

124
推荐指数
6
解决办法
4万
查看次数

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

我知道更多视图控制器(导航栏)的存在会推动UIView的高度.我也知道这个高度= 44px.我也发现这种下推保持了[self.view].frame.origin.y = 0.

那么如何确定此导航栏的高度,而不仅仅是将其设置为常量?

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


灯泡开始亮了.不幸的是,我没有找到纠正问题的统一方法,如下所述.

我相信我的整个问题都集中在我的autoresizingMasks上.并且我得出结论的原因是存在相同的症状,有或没有UIWebView.而这种症状是肖像的一切都是桃色的.对于Landscape,最底部的UIButton在TabBar后面弹出.

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

UIView - 弹簧设置(默认情况下)和没有支柱

UIScrollView - 如果我设置了两个弹簧,并清除了其他所有弹簧(如UIView),那么UIButton就会闯入它上方的物体上.如果我清除了所有内容,那么UIButton就可以了,但是最顶层的东西隐藏在StatusBar后面只设置顶部支柱,UIButton弹出Tab Bar后面.

UILabel和UIImage接下来垂直 - 顶部支撑设置,在其他地方灵活

只是为少数拥有UIWebView的图片完成:

UIWebView - Struts:顶部,左侧,右侧弹簧:两者

UIButton - 没有设置,即到处灵活

虽然我的灯泡昏暗,但似乎有希望.


请耐心等待,因为我需要更多的空间而不是简短的回复评论.

感谢您试图了解我真正想要捕获的东西......所以这里有.

1)每个UIViewController(一个TabBar应用程序)都有一个UIImage,一些文本和顶部的任何东西.另一个共同点是底部的UIButton.在一些UIViewControllers上,我在UIButton上面有一个UIWebView.

所以,UIImage,文本等UIWebView(在SOME上)UIButton

围绕以上所有是UIScrollView.

2)对于那些拥有UIWebView的人,其autoresizingMask看起来像:

   —
   |
   —

   ^
   |
   |
Run Code Online (Sandbox Code Playgroud)

| - | ←----→| - | | | 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)]
Run Code Online (Sandbox Code Playgroud)

一旦我这样做,然后我以编程方式向下推UIButton,使其最终放在UIWebView下面.

一切正常,直到我将它从肖像旋转到风景.

我在-didRotateFromInterfaceOrientation中调用了我的-repositionSubViews.

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

从纵向到横向,内容宽度应该扩展,内容高度应该缩小.它视觉上应该如此,但不是根据我的NSLog.

无论如何,无论是否有UIWebView,我所谈到的按钮在横向模式下移动到TabBar下方,但它不会向上滚动以便看到.当我"大力"滚动时,我在TabBar后面看到它,但随后它"退回"TabBar后面.

最后一点,这就是我询问TabBar和NavigationBar高度的原因,因为TabBar将自己置于UIView的底部,而NavigationBar将UIView向下推.

现在,我要在这里添加一两条评论,因为它们之前没有意义.

没有UIWebView,我将所有内容保留为IB所见.

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

那么你有它.

objective-c uinavigationbar uinavigationcontroller ios swift

122
推荐指数
10
解决办法
16万
查看次数

115
推荐指数
4
解决办法
11万
查看次数

在swift中删除navigationBar中的边框

我一直试图删除navigationBars边框没有运气.我已经研究过,人们似乎告诉将shadowImage和BackgroundImage设置为nil,但这在我的情况下不起作用.

我的代码

    self.navigationController?.navigationBar.barTintColor = UIColor(rgba: "#4a5866")
    self.navigationController?.navigationBar.setBackgroundImage(UIImage(named: ""), forBarMetrics: UIBarMetrics.Default)
    self.navigationController?.navigationBar.shadowImage = UIImage(named: "")
Run Code Online (Sandbox Code Playgroud)

插图:

在此输入图像描述

iphone uinavigationbar ios swift

105
推荐指数
15
解决办法
6万
查看次数

透明导航栏ios

我正在创建一个应用程序,我已经在互联网上浏览了,我想知道他们是如何制作这样的透明导航栏的:

在此输入图像描述

我在我的appdelegate中添加了以下内容:

UINavigationBar.appearance().translucent = true
Run Code Online (Sandbox Code Playgroud)

但这只是让它看起来如下:

在此输入图像描述

如何使navigationBar像第一张图像一样透明

iphone uinavigationbar ios swift

99
推荐指数
9
解决办法
13万
查看次数

如何防止UINavigationBar覆盖iOS 7中的顶部?

更新到Xcode 5后,我所有应用程序视图中的导航栏都向下移动.下面是一些截图,第一个显示视图中的所有内容,因为它被拉下来,第二个显示所有内容都未触及.搜索栏应从导航栏开始.

所有内容 空闲时的所有内容

有谁知道如何解决这个问题?

编辑:我之前尝试过这个建议:

if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
        self.edgesForExtendedLayout = UIRectEdgeNone;
Run Code Online (Sandbox Code Playgroud)

但它产生了非常奇怪的结果.

解决方案尝试

这可能是因为我在此视图控制器下面有一个"幻灯片菜单",由于导航栏的透明度而出现.

objective-c uinavigationbar ios uistatusbar ios7

97
推荐指数
5
解决办法
9万
查看次数

UISegmentedControl在iOS 7中的UINavigationbar下面

如何将其UISegmentedControl作为UINavigationBar下方的一部分呢?它是否连接到UINavigationBar或者它是一个完整的单独视图,只是作为子视图添加到UINavigationController视图控制器中.看起来它是UINavigationBar因为酒吧下面有阴影所以是它的一部分.

在此输入图像描述

uinavigationbar uisegmentedcontrol ios

96
推荐指数
5
解决办法
3万
查看次数

以编程方式在UINavigationController中设置UINavigationBar的自定义子类

UINavigationBar如果我以UINavigationController编程方式实例化(没有IB),有谁知道如何使用我的自定义子类?

拖动UINavigationController在IB中显示我在导航栏下并使用Identity Inspectory我可以更改类类型并设置我自己的子类UINavigationBar但编程方式我不能,navigationBar导航控制器的属性是只读...

我该怎么做才能以编程方式自定义导航栏?IB比"代码"更"强大"吗?我相信在IB中可以做的所有事情也可以通过编程方式完成.

objective-c uinavigationbar uinavigationcontroller

92
推荐指数
7
解决办法
5万
查看次数