首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

隐藏导航栏时的Swift ios奇数空格

隐藏导航栏时的Swift iOS奇数空格是指在iOS开发中,当隐藏导航栏时,导航栏的高度会被视为奇数倍的空格。

在iOS开发中,导航栏是一个常见的界面元素,用于显示标题、返回按钮等。有时候,我们需要隐藏导航栏以实现特定的界面效果。然而,隐藏导航栏后,界面的布局可能会出现一些奇怪的问题,其中之一就是导航栏高度的奇数倍空格。

这个问题的原因是iOS系统在计算导航栏高度时,会将状态栏的高度也计算在内。而状态栏的高度在不同设备上可能是不同的,通常为20或44个点。当导航栏隐藏时,状态栏的高度仍然存在,导致导航栏高度的奇数倍空格出现。

为了解决这个问题,我们可以使用以下方法之一:

  1. 调整布局:在隐藏导航栏时,对布局进行适当的调整,以消除奇数倍空格。可以通过修改约束、调整视图的位置或大小等方式来实现。
  2. 使用自定义导航栏:不使用系统提供的导航栏,而是使用自定义的导航栏来替代。自定义导航栏可以完全控制导航栏的高度和布局,避免奇数倍空格的问题。
  3. 使用第三方库:有一些第三方库可以帮助解决这个问题,例如"AMScrollingNavbar"和"WRNavigationBar"等。这些库提供了更灵活的导航栏控制,可以避免奇数倍空格的出现。

总结起来,隐藏导航栏时的Swift iOS奇数空格是一个在iOS开发中常见的问题,可以通过调整布局、使用自定义导航栏或借助第三方库来解决。在解决问题时,需要注意导航栏高度的计算方式,以及对布局的适当调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS导航栏切换界面时隐藏和显示

引 现如今很多App的一些模块,尤其是个人中心模块,界面设计已经习惯于不保留导航栏,而是直接将界面背景覆盖到状态栏,比如QQ的个人信息界面: 没有传统的导航栏之后会好看很多,但是回到或者去往别的页面时...: 实现: 要实现这个简单的有无导航栏过渡其实很简单,直接在 viewWillAppear 和 viewWillDisappear 方法中对导航栏进行显示和隐藏就可以了,为了到达比较平滑的效果,建议对是否动画的参数选择...,在通过Tabbar切换模块时就会出现一个很快的隐藏导航栏的动画,这个很烦,我尝试了很多方法,试图在 UINavigationControllerDelegate 和 UITabBarControllerDelegate...这个方法是直接隐藏了整个导航栏,所以如果要保存导航栏的一些返回按钮以及其他自定义的按钮,就需要自己在界面上去模拟添加,如果不想这么麻烦,也可以不隐藏导航栏,而是将导航栏的背景视图设为透明的: [...这里有一篇文章实现了:传送门:导航栏的平滑显示和隐藏 - 个人页的自我修养(1) ,不过作者使用swift实现的,用到了extension,其实也就是OC下的category,之后我再研究一下OC下的实现好了

3.9K30

03_iOS导航栏的正确隐藏方式

简介 在项目中经常碰到首页顶部是无限轮播,需要靠最上面显示.有的设置导航栏为透明等一系列的方法,这个可以借助第三方.或者干脆简单粗暴的直接隐藏掉导航栏.可是push到下一个页面的时候是需要导航栏的,如何做了...第一种做法 注意这里一定要用动画的方式隐藏导航栏,这样在使用滑动返回手势的时候效果最好,和上面动图一致.这样做有一个缺点就是在切换tabBar的时候有一个导航栏向上消失的动画. - (void)viewWillAppear...]; [self.navigationController setNavigationBarHidden:NO animated:animated]; } 第二种做法 设置self为导航控制器的代理...,实现代理方法,在将要显示控制器中设置导航栏隐藏和显示,使用这种方式不仅完美切合滑动返回手势,同时也解决了切换tabBar的时候,导航栏动态隐藏的问题。...最后要记得在控制器销毁的时候把导航栏的代理设置为nil。

1.3K20
  • Android的Dialog弹出时隐藏导航栏效果,目前认为的最优解

    原本Android的ProgressDialog用法很简单,两三行代码就搞定了。但是,但是,但是,用在无人值守的自助终端上,总是把之前隐藏掉的导航栏和状态栏显示出来。这是不可接受的。...项目中用到一个Android的ProgressDialog显示操作的进度条,机器要求是屏蔽或隐藏掉导航栏和虚拟按键的显示。...但是试了好多方法,也参考了网上的很多做法,隐藏安卓底部导航栏之后 弹出dialog或者popupwindow后,导航栏会再次显示出来,虽然可以设置在dialog的onStart中再次隐藏导航栏,但是会出现一个导航栏显示出来又马上隐藏掉的一个效果...这样会很影响体验,会闪一下虚拟栏再隐藏,或者隐藏了再显示回来。 经过一连串的尝试摸索,找到了个目前认为是见到过的最优解的方法。 如果谁有更好更简单的实现,欢迎留言,共同学习学习。...,加上一个状态栏变化的响应处理,在把它隐藏掉。

    4.8K20

    ios7之后导航栏的问题2

    https://blog.csdn.net/u010105969/article/details/53334755 在《ios7之后导航栏的问题1》(http://blog.csdn.net/u010105969.../article/details/53333748)博客中我们提到了在有导航栏的情况下根视图的坐标原点的的问题,但我当初添加的是一个普通的视图,如果我们添加的是一个UITableView我们会发现问题又会有所不同...根视图的坐标原点难道又发生变化了?其实不然,根视图的坐标原点并没有发生变化,我们可以用视图调试器查看根视图的坐标原点: ?...从图中我们可以看到白色的根视图和蓝色的tableV,可见根视图的坐标原点确实是(0,0)。那为什么展示出来的tableV却像是下移了64?...我还发现,如果我们的根视图是tabBarController我们添加的tableV的内边距同样会距离底部发生49的偏移。 不知道我的两篇博客是否解答了读者心中的一些疑惑,希望能够。

    84730

    ios7之后导航栏的问题1

    https://blog.csdn.net/u010105969/article/details/53333748 iOS7之后rootView(即根视图)的原点是(0,0),当根视图控制器是NavigationController...的时候有时一些视图的原点却会发生一些变化,有时是(0,0),有时是(0,64),而我们设置的却一直是(0,0),这到底是为什么呢?...上面设置属性的代码是设置navigationBar的透明属性translucent,此属性默认是YES,我们也看到在默认状态下navigationBar是有透明度的,当设置此属性为NO时,navigationBar...我所说的设置navigationBar的颜色不是通过setBackgroundColor这个方法,因为这个方法设置的颜色并不是我们想要的颜色,比如我们想设置navigationBar的颜色为纯绿色,如果直接使用...的透明度也发生了变化从而导致根视图的坐标原点发生变化。

    43720

    swift 2.0 与 OC 相比较,标签栏和导航栏书写的差别

    下面是swift书写的时候的两个方法,其实这里不是教大家怎么样写的这个问题,我是想通过这两个不同语言的进行的一个比较,向大家找他们之间“想法”上的一些相同点,这样子我们学习swift的时候,就可以更加的游刃有余...我们熟悉OC这门语言,找到他么想法上的相同点了,你也就可以利用OC来学习swift了。...addChildViewController(UINavigationController(rootViewController: vc)) } 下面是我们熟悉的OC...的写法 HomeViewController * home =[[HomeViewController alloc]init]; home.title=@"首页"; home.tabBarItem.title...,希望你能看到他们思想上的相同点,有些东西你悟出来的比我告诉你的更好!!!

    92570

    Android经典实战之用WindowInsetsControllerCompat方便的显示和隐藏状态栏和导航栏

    它简化了在不同 API 级别上控制系统窗口插入的复杂性,使得开发者能够更轻松地处理状态栏和导航栏的显示/隐藏、动画过渡等操作。...主要功能 1、 显示和隐藏状态栏、导航栏: 使用 WindowInsetsControllerCompat,你可以轻松地控制状态栏和导航栏的显示与隐藏。...Behavior 标志位 WindowInsetsControllerCompat 的 systemBarsBehavior 属性决定了系统栏(状态栏和导航栏)在隐藏和显示时的行为。...: 当系统栏隐藏时,用户可以通过触摸屏幕的任意位置来显示系统栏。...: 当系统栏隐藏时,用户可以通过从系统栏区域向内滑动来临时显示系统栏。

    30510

    iOS去除导航栏和tabbar的1px横线

    1.在自己定义的导航栏中或者设计稿中经常需要去除导航栏的1px横线,主要是颜色太不协调了 去除之前的图片 要去除这1px的横线,首先应该知道它是什么,在Xcode的界面调试中可以看到,它其实是UIImageView...来的 找到横线是什么了··· 其实这是navigationBar的shadowImage,所以只要设置它为空即可,但是设置它为空之前应该先设置它的背景也为空,全部代码如下: [self.navigationController.navigationBar...: 完成之后的效果 既然导航栏的那一横线能去除,那tabbar那一横线也是能去除的了(其实也是shadowImage来的)··· 方法一: 自定义UITabBarController 方法二: [self.tabBarController.tabBar...,只要设置它的shadowImage即可。...(如果有更加好的方法,希望交流一下~~)

    1.7K40

    【iOS开发-22】navigationBar导航栏,navigationItem建立:获取导航栏中的基本文本和button以及各种跳跃

    大家好,又见面了,我是全栈君 (1)navigationBar导航栏可以被看作是self.navigationController一个属性导航控制器,它可以由点直接表示self.navigationController.navigationBar...即所谓的标题视图放在导航条的中间,用得方法是setTitleView,非常多游戏的导航条中间貌似是一个图片,能够用这个。...也要注意一下有多个button时的排列顺序。 (5)我们创建的这些导航条button有非常多种形式。...有的是由文字的,有的时图片,有的时系统自带的如摄像头或者Reply这些icon,有的全然是自定义的视图。...隐藏导航条,由此点击进入其它视图时导航条也会被隐藏。

    2.4K10

    iOS系统中导航栏的转场解决方案与最佳实践

    导航栏组件的改变与革新 导航栏组件在 iOS 11 发布时,获得了重大更新,这个更新可不是增加了一个大标题样式(Large Title Display Mode)那么简单,需要注意的地方大概有两点: 导航栏全面支持...之后这个假的导航栏会一直存在页面 A 上,用于保留 A 离开时的导航栏样式。...如果真的要隐藏导航栏 如果我们需要隐藏导航栏,请保证所有的 ViewController 能坚持如下原则: 每个 ViewController 只需要关心当前页面下的导航栏是否被隐藏。...在 viewWillAppear: 中,统一设置导航栏的隐藏状态。...转场动画与导航栏隐藏动画的一致性 如果在转场的过程中还会显示或者隐藏导航栏的话,请保证两个方法的动画参数一致。

    2.4K30

    iOS开发常用之网络

    该项目通过三种形式展示页面之间的切换,比如导航栏上的多个选项卡切换,页面左右两端箭头指示切换,以及使用分段控件。...TabBarController,支持自定义TabBarItem样式或添加动画 隐藏与显示 SlideTapBar - 滚动栏菜单,向上滚动时隐藏tabbar,向下滚动马上显示tabbar。...LTNavigationBar - LTNavigationBar为导航栏添加动态着色效果,可自定义其背景色.Demo包含:1。变换背景色; 2。滚动视图,导航栏和状态栏重叠。...一个用于统一管理导航栏转场以及当推或者弹出的时候使动画效果更加顺滑的通用库,并且同时支持竖屏和横屏。...Persei - 动画隐藏或显示顶部菜单支持库及示例项目.-- swift PDTSimpleCalendar - 是iOS最棒的日历组件。

    23.7K10

    Android经典面试题之Kotlin中如何隐藏DialogFragment和Dialog的导航栏

    DialogFragment隐藏导航栏 在 Android 中,使用 DialogFragment 显示对话框时,如果您希望隐藏系统导航栏(如状态栏和导航键),可以通过设置相关的系统 UI 标志来实现。...这种方法允许您的 DialogFragment 在显示时全屏,并隐藏状态栏和导航栏。...Dialog中隐藏导航栏 在 Android 中,如果想在 Dialog 中隐藏系统导航栏(包括状态栏和底部的导航键),可以通过设置窗口属性来实现。...在创建 Dialog 时,可以使用 Window 类提供的一些标志来隐藏导航栏。...systemUiVisibility 属性用于隐藏系统导航栏和状态栏。 通过这些设置,当显示 Dialog 时,它将隐藏系统导航栏和状态栏,实现全屏显示。

    19410

    iOS透明导航栏的平滑过渡(进阶版)引实现过程结

    引 如我在传送门:iOS导航栏切换界面时隐藏和显示中所说,现在很多App的个人中心模块都是不保留导航栏的,会直接使导航栏透明,比如做的很好的QQ个人信息界面: 为什么说QQ做的很好呢?...而很多App的做法其实比较粗糙,类似于我在传送门:iOS导航栏切换界面时隐藏和显示中的做法,需要导航栏透明时,直接将导航栏隐藏起来。...直接隐藏起来的意思是,整个导航栏就用不了了,也就是说,标题、返回按钮等都需要自己去做,这是一个比较麻烦的地方,此外,在有无导航栏的界面间切换时,过程是比较生硬的,导航栏不是渐变出现的。...,标题、返回按钮啥的都方便加,这也就是说不隐藏导航栏,而是要单独让导航栏背景透明; 2、在导航栏透明与否的界面间切换时透明度有渐变效果; 3、在UINavigationController体系和UITabarController...,下面这种方法是比较好的方法: // 对导航栏下面那条线做处理 self.navigationBar.clipsToBounds = alpha == 0.0; 当我们对导航栏的透明度设为 0 时,就会隐藏细线

    3.1K40

    iOS之深入解析Xcode 13正式版发布的40个新特性

    十二、Instruments Instruments 中的调用树视图和扩展详细信息视图现在用“[inlined]”标记指示内联函数; 通过详细视图导航栏更容易发现不同的视图。...; 现在可以使用键盘选择和导航大纲视图组,例如 Constraints; Interface Builder 有一个重新设计的画布底部栏,带有用于更改设备和布局的弹出窗口,以及用于更改设备外观和方向的开关...十九、Project Navigator 当 Products 组位于默认位置时,项目导航器会隐藏它; Move Focus to Editor 命令现在解释 vim 方向移动键; schema 编辑表不再有最大尺寸...在 iOS 14 和 iPadOS 14 及更早版本中,当 autocorrectionType 设置为 UITextAutocorrectionTypeNo 时,QuickType 栏将被禁用。...如果新行为不适合您的用例,请将 spellCheckingType 设置为 UITextSpellCheckingTypeNo 以隐藏 QuickType 栏。

    8.8K40

    IOS系统input输入框为readonly时, 隐藏键盘上的上下箭头

    业务中在一定场景中会将input 设置为只读状态,在IOS safari上当input 输入框focus 时,仍会出现键盘上的上下箭头,这种用户体验非常不好,如何干掉呢?...而这些箭头的本意是让用户在上下多个input 中自由方便切换。 但是对于输入框的状态是只读时,给用户弹出这样的箭头就不应该了。...唯一的选择是当输入被聚焦时禁用表单中的所有其他输入,因此就不会出现上下切换的选项卡。...具体实施方法是 focus某个input时,对于所选input之外的所有input与textarea元素,添加readobly参数。...$(document).ready(function() { // 判断是否是IOS if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) {

    2.1K30

    iOS视图滚动的时候控制导航条标题及公告视图的alpha(显示与隐藏)

    I 视图滚动的时候控制导航条标题及公告视图的alpha 应用场景:导航条的标题放到视图中,例如下图 ?...}]; } return _noteViw; } 1.2 滚动的时候控制导航条标题和公告视图的...alpha(显示与隐藏) scrollViewDidScroll - (void)scrollViewDidScroll:(UIScrollView *)scrollView { navLab.text...应用场景:比如设计给我们的是一张黑色的返回箭头图.我们某个页面需要弄成白色的话.又不想重新设计一下新的图片 解决方法:修改tintColor 如果按钮是UIButtonTypeSystem类型的,比如修改系统导航栏的...(7.0)); III iOS跑马灯控件的封装(公告栏) 1、应用场景:公告栏和抽奖轮盘边框动画 2、CSDN文章https://blog.csdn.net/z929118967/article/

    1.6K30

    iOS动画系列之六:利用CABasic Animation完成带动画特效的登录界面1. 画风突变的笑脸2. 心跳3. iOS实践:实现一个带动效的登录界面

    https://git.oschina.net/atypical/CABasic-Animation.git iOS动画系列之CABasic-Animation(OC和Swift两版) 1....心跳 2.1 动画分析 1,这里咱们用到了缩放,基础部分可以参考:iOS动画系列之五:基础动画之缩放篇&旋转篇。 2, 照片的隐藏这部分动画,咱们是通过修改imageView的alpha值实现的。...3.3 需要注意的一些小地方 1,为了能够有一个相对舒服一点的视觉效果,对导航栏进行了隐藏。 2,修改了电池栏的颜色,能让全屏的时候看起来舒服一点。默认情况下,系统的电池栏颜色都是黑色。...最后那个闪动按钮就在那里不停的左摆摆,右拜拜扭屁股啦~ // 将导航栏隐藏 [self.navigationController setNavigationBarHidden:YES];...包含了OC和Swift两种源代码(下) 第三篇:iOS动画系列之三:Core Animation。介绍了Core Animation的常用属性和方法。 第四篇:CABasic Animation。

    1.6K60

    最新iOS设计规范三|3大界面要素:栏(Bars)

    导航栏是半透明的,也可以添加背景色,并且必要时可以设置为隐藏。 ? 某些情况下可暂时隐藏导航栏,以提供更沉浸的体验。例如,当人们查看全屏照片时,“照片”会隐藏导航栏和其他界面元素。...在iOS 13及更高版本中,默认情况下,大标题导航栏不包含背景材质或阴影。另外,随着页面滑动,大标题要转换为标准标题。 ? 隐藏大标题导航栏的边框。...在iOS 13及更高版本中,可以通过删除导航栏的阴影来隐藏导航栏的底部边框(当滑动内容区域时,边框会自动重新出现)。无边框样式在大标题导航栏中效果很好,因为它增强了标题和内容之间的联系感。...如果导航栏包含多个文本按钮,需要通过在按钮之间插入固定的空格项目来增加分隔。以此来避免按钮文本同时显示造成按钮无法区分的问题。 考虑在导航栏中使用分段控件,使APP的层次结构更加扁平。...当人们导航到您应用中的其他区域时,请不要隐藏标签栏。标签栏可为您的应用启用全局导航,因此它在任何地方都应保持可见。模态视图例外。

    9.9K10
    领券