【问题标题】:Ambiguous Layout with UITextField in the contentView of a static UITableViewCell静态 UITableViewCell 的 contentView 中带有 UITextField 的模糊布局
【发布时间】:2013-10-06 23:55:28
【问题描述】:

我正在尝试将 UITextFields 添加到一些静态 UITableViewCells 的 contentViews 中。如果我只是将它们直接添加到情节提要中的单元格,我会在 Xcode 5 中收到以下几个警告:

Ambiguous Layout: Position is ambiguous for "Round Style Text Field".

如果我随后选择 UITextFields 并在情节提要中选择“添加缺少的约束”,则会收到以下警告:

Misplaced View: Frame for "Round Style Text Field" will be different at run time.

此外,我尝试在 UITextField 和 contentView 之间手动添加约束(通过选择这两个视图并尝试添加约束),但似乎没有任何约束选项可用于该特定关系(复选框都被禁用)

以下是故事板的一些屏幕截图:

【问题讨论】:

    标签: ios uitableview autolayout xcode5 xcode-storyboard


    【解决方案1】:

    在情节提要左侧的视图控制器面板中会出现一个带有箭头的黄色圆圈,点击它。

    然后在新面板中单击中间有一个圆圈的黄色三角形。

    你应该得到三个选项:

    1. 更新框架 - 这将移动 UI 元素以匹配橙色虚线框
    2. 更新约束 - 这将更新约束以匹配当前 UI 元素
    3. 重置为建议的约束 - Xcode 会做它认为正确的事情

    在您的情况下,更新约束应该可以工作

    【讨论】:

    • 这解决了不明确的布局问题,但没有解决错位的视图问题。
    • 要修复错位的视图,打开错位视图的尺寸检查器,并更改框架矩形的值以匹配警告中列出的预期值。
    • 如果我不希望框架与预期值匹配怎么办?
    • 现在,当您运行应用程序时,帧将匹配预期值。情节提要中的警告只是告诉您,您将在模拟器/设备上获得的内容与情节提要中显示的内容不同。如果您喜欢框架在情节提要上的位置,则必须编辑约束以匹配框架。
    【解决方案2】:

    我遇到了类似的问题 - 无法向嵌入式 UITextField 添加(“Pin”)约束,收到有关它的警告等。OP 没有指定,但从屏幕截图看来,静态 UITableViewCell 的样式设置为预定义类型之一(特别是“Left Detail”)。

    我发现将表格视图单元格“样式”下拉菜单设置为“自定义”将神奇地启用向 UITextField 添加约束,但代价是必须自己重新构建预定义的单元格样式 - 例如添加 UILabel(s) 并将它们的对齐方式与其他单元格匹配。

    【讨论】:

      猜你喜欢
      • 2018-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-21
      • 1970-01-01
      • 2011-01-04
      • 2018-11-02
      • 1970-01-01
      相关资源
      最近更新 更多