iOS基础- iOS 11 navigationItem.titleView 适配

文章部分转载自:https://blog.csdn.net/a411360945/article/details/78067167

最近由于Apple 更新了iOS 11版本,在系统升级之后,发现项目中之前适配好的titleView 发生了如下变化:

iOS 11 之前


iOS 11

 

WTF?

在iOS 11中titleView的宽度设置了没有效果,也没有拉伸展示,缩成一坨了。项目中有好多地方用到了titleView这个属性,怎么办?

打开Xcode 查看视图层级功能,发现在iOS 11 中Apple 改变了UINavigationBar的视图层级,titleView不是加到NavigationBar上了,而是加到UINavigationBarContentView上

那么怎么解决这个问题呢?

在你自定义的titleView中重写intrinsicContentSize 的Get 方法,如下:

- (CGSize)intrinsicContentSize

{

    return UILayoutFittingExpandedSize;

}

然后再次运行项目,你会发现和之前的效果一样了。

----华丽的分割线----

以上部分是看到有人分享转载的,发现个问题,- (CGSize)intrinsicContentSize方法如果return UILayoutFittingExpandedSize;的话会占据全部title。如果是自定义的view贴在上面的话是会变形的。这边返回的话,可以return一个CGSize,具体的大小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值