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

当UINavigationItem更改时,iOS 13 UINavigationBar不会自动计算大小

。在iOS 13中,UINavigationBar的行为发生了变化,当UINavigationItem的属性发生更改时,UINavigationBar不会自动重新计算大小。这可能会导致UINavigationBar的布局出现问题,例如标题或按钮被截断或覆盖。

为了解决这个问题,可以手动调用UINavigationBar的sizeToFit()方法来重新计算并调整UINavigationBar的大小。这将根据UINavigationItem的内容自动调整UINavigationBar的大小,确保所有内容都能正确显示。

示例代码如下:

代码语言:txt
复制
navigationController?.navigationBar.sizeToFit()

这将在导航栏的父视图中调整导航栏的大小,确保其适应UINavigationItem的内容。

此外,还可以使用UINavigationBarDelegate的方法来手动计算和设置UINavigationBar的大小。例如,可以实现UINavigationBarDelegate的willShow(_:animated:)方法,并在其中计算和设置UINavigationBar的大小。

代码语言:txt
复制
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
    navigationController.navigationBar.sizeToFit()
}

这样,在每次导航栏将要显示新的视图控制器时,都会调用该方法来重新计算和设置导航栏的大小。

总结起来,当UINavigationItem更改时,iOS 13 UINavigationBar不会自动计算大小,但可以通过手动调用sizeToFit()方法或实现UINavigationBarDelegate的方法来重新计算和设置导航栏的大小,以确保其适应UINavigationItem的内容。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动开发平台:https://cloud.tencent.com/product/mpp
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云音视频处理(VOD):https://cloud.tencent.com/product/vod
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链(BCBaaS):https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙(Tencent XR):https://cloud.tencent.com/product/xr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS16 适配指南(基于Xcode 14 Beta3)

iOS 16 真机调试时需要在设备的设置 —> 隐私与安全 —> 开发者模式中打开开发者模式。新增 UICalendarView,可以显示日期并支持单选与多选日期。...UITableView 与 UICollectionView 增加了新的selfSizingInvalidation参数,通过它 Cell 具备自动调整大小的能力。...UINavigationItem 增加了一个属性style用于描述 UINavigationItemUINavigationBar 上的布局;增加了一个属性backAction用于实现当前 UIViewController...UISheetPresentationController 支持自定义显示的 UIViewController 的大小。UIMenu 支持设置尺寸,分别为small、medium与large。...为了支持 iOS 锁屏显示与 watchOS 表盘显示,WidgetFamily 增加了新的分类accessory。

6.5K50

UI篇-UINavigationController之易忘补充

上面设置的为YES,下面的为NO 关于导航返回:     首先ios7 之后只要使用系统自带的导航效果就有手动滑动返回的效果。但是自定义返回按钮时,这种手动滑动返回的效果就没有了。...将状态栏隐藏就可实现这样不错的页面效果 PS:  backBarButtonItem的自定义事件是不会被执行的 backItem = [[UIBarButtonItem alloc] initWithTitle...UINavigationItem属于MVC中的M,封装了要显示在UiNavigationBar上的数据,定义了UINavigationItem上按钮的触发事件,外观等 -initWithBarButtonSystemItem...也是以栈的方式管理一组UINavigationItem。...UINavigationController是一个viewController UINavigationBar是一个view UINavigationItem是一个NSObject UIBarButtonItem

2.1K20

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

iOS没有直接给我们提供对于导航栏背景view的访问途径,那么我们只能自己来找了。...首先我们遍历打印出UINavigationBar的所有子视图,是所有,包括子视图的一层层子视图,来看看到底导航栏都包含了哪些东西: 上面这张图就是导航栏UINavigationBar所包含的所有子view...: // 对导航栏下面那条线做处理 self.navigationBar.clipsToBounds = alpha == 0.0; 当我们对导航栏的透明度设为 0 时,就会隐藏细线,否则不隐藏,这样切换到其他界面时...,同时使用 UIView 动画(关于 UIView 动画可以看我的这篇文章:传送门:iOS基础动画教程),在自动操作的那个时间内将透明度变为对应界面的导航栏透明度,让其变化的不那么跳跃: #pragma...Delegate - (void)navigationBar:(UINavigationBar *)navigationBar didPopItem:(UINavigationItem *)item

2.9K40

iOS学习—— UINavigationController的返回按钮与侧滑返回手势的研究

侧滑返回手势是从iOS7开始增加的一个返回操作,经历了两年时间估计iPhone用户大部分都已经忽略了屏幕左上角那个碍眼的back按钮了。...一 侧滑返回      侧滑返回是系统iOS7自带的一种方便用户进行返回操作而推出的一种新功能。在开发过程中,对侧滑返回进行控制非常简单,主要就是启动侧滑手势和禁用侧滑手势。...此外,如果是自定义的左按钮,则系统不会修改其值。...如果我们一定需要重写返回键的action做一些其他的工作,则需要自定义一leftBarButtonItem,因为系统定义leftBarButtonItem的显示优先级比backBarButtonItem优先级高,存在...leftBarButtonItem时,自动忽略backBarButtonItem,达到重写backBarButtonItem的目的。

6.5K60

iOS头部渐变的表格视图设计 原

iOS头部渐变的表格视图设计         今天再来给大家带来一个开发中常用到的视图控制器,在很多应用中,可能都会遇到这样的一个需求:表视图控制器最上方有一个头图控件,表格视图滑动在顶部时,导航栏透明...,表格视图逐渐向下滑动时,导航栏渐渐出现,并且在滑动期间,头图会展示相关的渐变动画效果。...minAlpha; /**  *  *  是否显示毛玻璃模糊效果  *  */ @property(nonatomic,assign)BOOL bluerAnimated; /**  *  *  设置最大小模糊度... *  */ @property(nonatomic,strong)NSArray * leftBarButtons; /**  *  设置导航左侧按钮数组 如果不设置 会自动带一个返回按钮  *  ... * item = [[UINavigationItem alloc]initWithTitle:self.title];         _naviBar.items = @[item];

1.2K20

iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

Background 属性 Background 属性 : 用于为按钮设置背景图片; -- 文本图片共存 : 该属性可以设置 文本 和 图片 共同作为按钮背景, 比使用 Image 属性设置图片 显示内容 丰富...; (5) Capitalization 属性 Capitalization 属性 :  -- None : 不切换大小写; -- Words : 自动将首字母转大写字母; -- Sentence :...不自动更正字母; -- Yes : 自动更正字母; (7) KeyBoard 属性 KeyBoard 属性 : 设置虚拟键盘类型,  ; -- Default : 默认虚拟键盘; -- ASCII...设置下面的属性; -- Placeholder 属性 : 设置 "请输入密码" 提示字符串; -- Clear Button 属性 : 设置 "Appear while editing" 选项, 编辑时出现取消按钮...创建并初始化导航条 :  //创建导航条 UINavigationBar *bar = [[UINavigationBar alloc] initWithFrame:CGRectMake

6.6K20

iOS导航栏使用总结

目录: 一、设置导航栏样式 二、解决自定义导航栏返回按钮后侧滑不可用问题 三、隐藏导航栏底部的分割线 四、导航栏引起的布局问题 相关文章:iOS状态栏的使用总结 一、设置导航栏样式 设置导航栏的样式可分为全局设置与局部设置...是整个屏幕大小时,系统会自动调整其contenInset,以保证滑动视图里的内容不被UINavigationBar与UITabBar遮挡。...我们可以通过一段代码来测试一下效果,在默认导航栏(半透明)的视图控制器里添加如下代码: //UITextView是滑动视图,内容自动向下偏移,不会被导航栏覆盖 UITextView *leftTextView...导航栏透明情况下,滑动视图自动偏移,普通视图被遮挡 其实,这种系统的优化也是可以控制关闭的,关闭优化之后,滑动视图就会和普通视图一样,如果还设置其布局的原点是(0,0),其内容就会被导航栏所覆盖,关键代码如下...= UIScrollViewContentInsetAdjustmentNever; }else{ //automaticallyAdjustsScrollViewIn,关闭自动偏移的系统优化

3.2K20

Cocoa编程中视图控制器与视图类详解

UIPageControl UITextField 表格和拾取器: UITableView (对于表格的行有一个UITableViewCell类的表格单元项) UIPickerView 各种栏样式: UINavigationBar...导航控制器自动构建并处理Back按钮; 3. 导航控制器提供简单的菜单栏可帮助用户进行自定义控件。4....要添加或修改导航栏按钮,使用UINavigationItem抽象类。...•设备方向变化,调整视图大小以适应屏幕。 •负责视图和模型之间的数据及请示的传递。 2. 视图控制器剖析 视图控制器有一个导航项,一个工具栏子项集以及一个tabbarItem项与其关联。 3....事件处理 如图所示,一般情况下,一个视图不响应用户事件时,它会将事件传递给它的父视图。但是,视图被视图控制器管理时,它会将事件首先传递给视图控制器。

5K50

iPhoneX 适配实践

1125px × 2436px (375pt × 812pt @3x) 横屏规格:2436px × 1125px (812pt × 375pt @3x) 2、状态栏 高度增加了24像素  来电或者热点不会导致状态栏高度变化...UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectZero]; navigationBar.backgroundColor...navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:[UIColor whiteColor]}; navigationBar.items = @[[UINavigationItem...解决方案:系统的UIToolBar会自动扩展背景颜色到底部,可以让Custombar继承UIToolBar,或者直接放置一个ToolBar的在底部当做背景也是可以的。注意高度不能超过48,否则失效。...(11.0)) API_UNAVAILABLE(watchos, tvos); @end 打开自动隐藏功能 - (BOOL)prefersHomeIndicatorAutoHidden {

3.6K41

你可能需要为你的 APP 适配 iOS11

5、UIToolbar and UINavigationBar— Layout 在 iOS 11 中,苹果进行所有这些新特性时,也进行了其他的优化,针对 UIToolbar 和 UINavigaBar...是个估算值,是通过estimatedRowHeight x cell的个数得到的,并不是最终的contenSize,tableView就不会一次性计算所有的cell的高度了,只会计算当前屏幕能够显示的cell...因为不会缓存正确的行高,tableView reloadData的时候,会重新计算contentSize,就有可能会引起contentOffset的变化。...滑动操作这里还有一个需要注意的是,cell高度较小时,会只显示image,不显示title,cell高度够大时,会同时显示image和title。...参考: 1、Updating Your App for iOS 11 - WWDC 2017 - Session 204 - iOS 2、iOS 8自动调整UITableView和UICollectionView

2.4K00

你可能需要为你的APP适配iOS11

UIToolbar and UINavigationBar— Layout 在 iOS 11 中,苹果进行所有这些新特性时,也进行了其他的优化,针对 UIToolbar 和 UINavigaBar 做了新的自动布局扩展支持...是个估算值,是通过estimatedRowHeight x cell的个数得到的,并不是最终的contenSize,tableView就不会一次性计算所有的cell的高度了,只会计算当前屏幕能够显示的cell...因为不会缓存正确的行高,tableView reloadData的时候,会重新计算contentSize,就有可能会引起contentOffset的变化。...滑动操作这里还有一个需要注意的是,cell高度较小时,会只显示image,不显示title,cell高度够大时,会同时显示image和title。...参考: 1、Updating Your App for iOS 11 - WWDC 2017 - Session 204 - iOS 2、iOS 8自动调整UITableView和UICollectionView

81220

你可能需要为你的 APP 适配 iOS 11

新增的属性:largeContentSizeImage,关于这部分详细的讨论,可以参考 WWDC2017 Session 215:What’s New in Accessibility 控制大标题的显示...UIToolbar and UINavigationBar— Layout 在 iOS 11 中,苹果进行所有这些新特性时,也进行了其他的优化,针对 UIToolbar 和 UINavigaBar 做了新的自动布局扩展支持...是个估算值,是通过estimatedRowHeight x cell的个数得到的,并不是最终的contenSize,tableView就不会一次性计算所有的cell的高度了,只会计算当前屏幕能够显示的cell...在测试Demo中,创建tableView到显示出来的过程中,contentSize的计算过程如下图: ?...因为不会缓存正确的行高,tableView reloadData的时候,会重新计算contentSize,就有可能会引起contentOffset的变化。

1.6K60

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

一、前言 Xcode 13 包括适用于 iOS 15、iPadOS 15、tvOS 15、watchOS 8 和 macOS Big Sur 11.3 的 SDK。...Xcode 13 Release Candidate 支持 iOS 9 及更高版本、tvOS 9 及更高版本以及 watchOS 2 及更高版本的设备上调试。...七、Core ML Xcode 的 Core ML 模型编辑器现在支持新的 Core ML 包格式 .mlpackage,以及对其元数据和描述的直接编辑; 部署目标是 macOS 12、iOS 15、...,并显示描述如何停止自动化的文本; 在 macOS 中,或在具有密码的设备上使用自动化时,必须从管理员帐户运行自动化,并且必须进行身份验证以授权自动化; XCTest 现在支持从 App Tracking...例如,按下 Delete 键始终会删除一个字符,并且不会触发 Delete 键命令(如果存在)。

8.7K40

iOS 11 更大的导航 (官方翻译版)

导航栏是半透明的,可能具有背景色调,并且可以配置为在屏幕上键入屏幕时隐藏,发生手势或视图调整大小。 ? 考虑在显示全屏内容时暂时隐藏导航栏。您想关注内容时,导航栏可能会分散注意力。...暂时隐藏酒吧,提供身临其境的体验。查看全屏照片时,照片会隐藏导航栏和其他界面元素。如果您实现这种行为,让用户使用简单的手势(如轻按)来还原导航栏。...有关开发人员的指导,请参阅UINavigationBar。 提示不需要导航时使用工具栏,或者想要多个控件来管理内容。请参阅工具栏。 导航栏标题 考虑在导航栏中显示当前视图的标题。...例如,Notes不会为当前注释标题,因为第一行内容提供了所需的所有上下文。 ? 标准标题 ? 大标题 您需要特别强调上下文时,请使用较大的标题。...iOS在使用此遮罩时,可以在转换期间为按钮标题设置动画。 不要包含多段面包屑路径。后退按钮总是执行单个操作 - 返回到上一个屏幕。

2.9K30

iOS开发入门笔记

因为学iOS开发,不仅是学习一门新语言,它包括: 一门语言:Objective-C 一个框架:Cocoa Touch 一个IDE:Xcode 初学脚本语言通常不会来绘制图形界面、与人交互,iOS如果不做图形界面...黑苹果基本可以胜任iOS开发,但有一些问题: 安装黑苹果是非法的 个人行为苹果公司一般不会追究,但会遭同行的鄙视 黑苹果超级难装,挑硬件。...*bar = [[[UINavigationBar alloc] init] autorelease]; 对应的Java版 UINavigationBar bar = UINavigationBar.alloc...把iOS设备连上电脑,Organizer会自动识别出你的设备,并显示在左侧边栏。...阅读应用代码 从头新建一个应用:Hello World 其它 代码里的控件尺寸 iOS App里的控件尺寸和字体大小都是指Point,Retina设备(iPhone 4,4S,5;the new Pad

3.9K60

实践-小细节 Ⅰ

assign) BOOL  displaysSearchBarInNavigationBar   可以把搜索条放到导航条上 @property(nullable,nonatomic,readonly) UINavigationItem...还有一个方便的方法声明一个有固定存储空间的变量集,如 UIImageView*imageV[3];这样就可以方便的找到你想要的那些变量啦,一次声明,各种使用,比较省事。 4. ...通常它会带有新值,而不会带有旧值。 NSKeyValueObservingOptionPrior 分2次调用。在值改变之前和值改变之后。...这样iOS就能知道移除的是自己的kvo,而不是父类中的kvo,避免二次remove造成crash。 6.阴影效果不出来?...UITextView 无法设置单行输入,输入的内容超过当前行的长度时就会自动换行,使用回车键也可以达到换行的效果。内容大小超出了当前的Frame  就可以滚动。

1.6K20

最新iOS设计规范七|10大视觉规范(Visual Design)

检测到某些环境变化(称为特征)时,自动布局会根据指定的约束自动调整布局。...系统提供的标准视图将自动采用安全区域布局指南。 尺寸类型 尺寸类型是根据大小自动分配给内容区域的特征。...用户喜欢在不同的方向使用APP,因此最好是你能能够满足用户这种期望。 做好更改文本大小的准备。用户希望大多数APP在设置中选择不同的文本大小时都能做出响应。...如果有人以不受支持的方向握住设备时您的应用程序不会自动旋转,那么他们会本能地知道如何旋转设备。 根据上下文自定义APP对旋转的响应。...使用字体粗细,大小和颜色突出显示应用程序中最重要的信息。 响应文本大小改时优先处理内容。并非所有内容都同样重要。

7.9K30
领券