Xcode 9 self.navigationItem.titleView = 自定义View 适配

更新Xcode 9遇到第一个比较大的适配就是 self.navigationItem.titleView 先看看未适配前的出现Bug效果

未适配
这个Bug在IOS11 之前都是好的,可以在IOS 11上面我们就会出现这个问题。
解决方案:
  • 在自定义View中手动添加一个intrinsicContentSize 属性,并在.m中重写

@property(nonatomic, assign) CGSize intrinsicContentSize;

static bool closeIntrinsic = false; //Intrinsic的影响

/**
 通过覆盖intrinsicContentSize函数修改自定义View的Intrinsic的大小
 @return CGSize
 */
-(CGSize)intrinsicContentSize
{
    if (closeIntrinsic) {
        return CGSizeMake(UIViewNoIntrinsicMetric, UIViewNoIntrinsicMetric);
    } else {
        return CGSizeMake(self.dc_width, self.dc_height);
    }
}

这个titleView的适配就解决了

适配

推荐参考文章 : 只有20%的iOS程序员能看懂:详解intrinsicContentSize 及 约束优先级/content Hugging/content Compression Resistance

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容