Ios autolayout是否添加了我可以';你不能搬走吗?

Ios autolayout是否添加了我可以';你不能搬走吗?,ios,autolayout,storyboard,interface-builder,nslayoutconstraint,Ios,Autolayout,Storyboard,Interface Builder,Nslayoutconstraint,每当我为iOS写东西的时候,我总是在为自动布局而挣扎。还有其他人有这些问题吗?你如何克服它?您是否已恢复使用SnapKit等替代产品 这就是我试图实现的目标: UITableViewCell +-------------------------------------+ | +-------------------------+ +-----+ | | | Label #1 | | #2 | | | +-----------------

每当我为iOS写东西的时候,我总是在为自动布局而挣扎。还有其他人有这些问题吗?你如何克服它?您是否已恢复使用SnapKit等替代产品

这就是我试图实现的目标:

            UITableViewCell  
+-------------------------------------+
| +-------------------------+ +-----+ |
| | Label #1                | | #2  | |
| +-------------------------+ +-----+ |
+-------------------------------------+
我希望:

  • 标签#1垂直居中
  • 标签#2垂直居中
  • 从左边界到标签#1的前导空间为常量
  • 从标签#2到右边界的尾随空间为常量
  • 标签#1和标签#2之间的水平间距为常数
以下是我收到的警告:不明确的布局组

  • Main.storyboard:警告:布局不明确:“标签#2”的垂直位置不明确。(一)
  • Main.storyboard 2视图在水平方向上不明确
  • Main.storyboard宽度对于“标签#1”不明确。(二)
  • Main.storyboard宽度和水平位置对于“标签#2”不明确。(2) Main.storyboard:警告:布局不明确:“标签#1”的垂直位置不明确。(一)
我的想法:

  • 垂直位置不应含糊不清。如果我没有将其设置为垂直居中,则在我的设备上显示错误
  • 我没有设置宽度限制。我甚至没有看到IB中需要删除的任何宽度约束

  • 只有在希望以编程方式添加约束(例如
    SnapKit
    )时,才能使用自动布局库

    iOS新手需要记住的一点是,视图应该具有
    宽度
    高度
    X
    Y

    现在,使用interface builder做您想做的事情非常简单。在序列图像板或Xib中进行布局时,如果布局不正确,则会出现警告或错误

    如果需要以下内容,请查看是否已实现:

    • 标签#1垂直居中于superView(单元格)✅
    • 标签#2垂直居中于superView(单元)✅
    • 从左边界到标签#1的前导空间为常量✅
    • 从标签#2到右边界的尾随空间为常量✅
    • 标签#1和标签#2之间的水平间距为常数✅
    正如您在我的约束中所看到的,有5个

  • 从superView到标签1的引线的引线距离
  • 将Y居中到标签1的单元格
  • 将Y居中到标签2的单元格
  • 从superView到标签2尾部的尾部距离
  • 标签1到标签2的距离
  • 最后,如果没有这个#6,您应该会得到一个错误或警告

  • 两个视图(标签)中的一个应该具有恒定宽度,我根据您的要求将恒定宽度放置在标签2上
  • 关于你的问题:

    自动布局是否添加了无法删除的宽度约束

    否,除非通过修复界面生成器中的警告/错误自动添加

    希望能有帮助


    如果您想以编程方式添加约束,例如
    SnapKit
    ,则只能使用自动布局库

    iOS新手需要记住的一点是,视图应该具有
    宽度
    高度
    X
    Y

    现在,使用interface builder做您想做的事情非常简单。在序列图像板或Xib中进行布局时,如果布局不正确,则会出现警告或错误

    如果需要以下内容,请查看是否已实现:

    • 标签#1垂直居中于superView(单元格)✅
    • 标签#2垂直居中于superView(单元)✅
    • 从左边界到标签#1的前导空间为常量✅
    • 从标签#2到右边界的尾随空间为常量✅
    • 标签#1和标签#2之间的水平间距为常数✅
    正如您在我的约束中所看到的,有5个

  • 从superView到标签1的引线的引线距离
  • 将Y居中到标签1的单元格
  • 将Y居中到标签2的单元格
  • 从superView到标签2尾部的尾部距离
  • 标签1到标签2的距离
  • 最后,如果没有这个#6,您应该会得到一个错误或警告

  • 两个视图(标签)中的一个应该具有恒定宽度,我根据您的要求将恒定宽度放置在标签2上
  • 关于你的问题:

    自动布局是否添加了无法删除的宽度约束

    否,除非通过修复界面生成器中的警告/错误自动添加

    希望能有帮助


    你能创建一个调试报告并给我链接吗?看起来解决你的问题更容易更快。谢谢@trungduc。不过我还是想出来了。警告不是很好,因为“模棱两可”听起来好像我有我不需要的东西。结果发现我需要一些我没有的东西:一个标签有一个恒定的宽度设置。你能创建一个调试repo并给我链接吗?看起来解决你的问题更容易更快。谢谢@trungduc。不过我还是想出来了。警告不是很好,因为“模棱两可”听起来好像我有我不需要的东西。结果发现我需要一些我没有的东西:其中一个标签有一个恒定的宽度设置。谢谢Glenn!成功了!问题是我没有在两个标签上设置恒定的宽度。这没关系,因为根据我的经验,就我所知,
    UILabel
    不需要恒定的宽度和高度约束。尝试使用
    UIView
    s而不是
    UILabel
    ,并查看是否需要设置恒定宽度:汉克斯·格伦!成功了!问题是我没有在两个标签上设置恒定的宽度。这没关系,因为
    UILabel
    不需要恒定的宽度和c