美文网首页理论程序员@IT·互联网
Xcode9:更为严谨的AutoLayout

Xcode9:更为严谨的AutoLayout

作者: 关于岚 | 来源:发表于2017-09-26 23:55 被阅读808次

在适配过程中,使用Xcode9为IB中View正确的添加约束会出现警告

例子:

在例子中我只为SmallBtn添加了位置约束,尺寸约束由Intrinsic Content Size(自身内容)来决定,在Xcode8上是没有问题的,但是在Xcode9上面就会提示有警告。

例子

分析

在上述的例子中,Xcode9给了我们一个Trailing constraint is missing,which may cause overlapping with other views的警告。这种警告就是Localization Issue

警告

产生的原因是因为在Xcode9中会去考虑本地化、IB多语言的情况。由于语言字符的宽高不同导致像Button、Label等这种依靠自身内容来获取尺寸的控件在不同语言环境下尺寸也会发生改变,这样就可能会造成遮挡住其他的View的这种情况。

不同环境的对比

解决方案

如果你能保证布局的正确性,不修复这类警告也不会造成很大的影响。不过看着警告总归是不舒服的,可以动手修复一下。下面举几个Localization Issue的警告和对应修复的例子。

  • Trailing constraint is missing,which may cause overlapping with other views的警告:需要多加一条约束左或右间距约束。这里是给smallBtn多添加一条右边的约束,smallBtn.Trailing <= RinghtView.Leading(这样就确定了smallBtn最大宽度,就解决了上述的情况了)

  • Fixed width constraints may cause clipping的警告:对该宽度约束设置>=widthValue

  • Fixed leading and traliling constraints with a center constraint may cause clipping.的警告:如果在修复完宽度约束之后有这样的警告,可以去掉左或右某一边约束,使该View的宽度与SmallBtn的宽度相等就可以了

最后

实际上Xcode的警告都会自动给出解决方案来,大家可以根据自己项目的实际情况来决定添加什么约束,这样解决起来会更加方便一点

约束修复

相关文章

  • Xcode9:更为严谨的AutoLayout

    在适配过程中,使用Xcode9为IB中View正确的添加约束会出现警告 例子: 在例子中我只为SmallBtn添加...

  • 【iOS开发】Xcode9新特性——Source Control

    我们知道Xcode9有一个重要的新特性——同GitHub的源代码控制整合得更为紧密了。在Xcode9中可以通过配置...

  • 更新到Xcode9遇到的坑

    看到xcode9出来了后,想体验下xcode9的新特性,就把xcode更新到xcode9,而且因为xcode9必须...

  • iOS - AutoLayout -2 AutoLayout

    # iOS - AutoLayout -2 AutoLayout 上篇文章我们了解了AutoLayout 的布局方...

  • 9.4 AutoLayout使用

    AutoLayout使用 AutoLayout使用.png

  • # iOS - AutoLayout -1

    iOS - AutoLayout -1 1、AutoLayout 自动布局(AutoLayout)是iOS6引入的...

  • AutoLayout

    AutoLayout autolayout的概念 Autolayout是一种“自动布局”技术,专门用来布局UI界面...

  • ScrollView 与 Autolayout

    ScrollView 与 Autolayout ScrollView 与 Autolayout

  • iOS布局

    布局方式 AutoLayout,AutoresizingMask AutoLayout NSLayoutConst...

  • 读一课经济学

    有人把这本《一课经济学》当成经济学的入门,但在我看来更为基础的微观和宏观经济学课本可能更为全面和严谨。此书以美国为...

网友评论

    本文标题:Xcode9:更为严谨的AutoLayout

    本文链接:https://www.haomeiwen.com/subject/ozoeextx.html