【问题标题】:Constraint's constant remains same but Label changes its position约束的常数保持不变,但标签改变了它的位置
【发布时间】:2018-09-27 06:54:13
【问题描述】:

我正在设计一个具有 2 个图像和 1 个标签的 UITableViewCell。我正在使用 Xcode 9.2 并使用 Autolayout 设计单元格。

我面临的奇怪的事情是:当我尝试通过点击 Xcode 底部列出的设备来测试不同屏幕尺寸的 UI 设计时,右侧的 UILabel 改变了它的位置。但是尾随约束的值保持不变。

我发布 Xcode 的屏幕截图以便更好地理解

iPhone X 屏幕截图:

iPhone SE 屏幕截图:

iPhone 8 plus 的屏幕截图:

正如您在附加的屏幕截图中看到的那样,用于尾随约束的常量是相同的按钮 imageView 已针对不同的屏幕尺寸更改了其位置。

我尝试过创建新的故事板、新的 ViewController、新的一切,但问题是一样的。另外,我注意到这个问题只出在 TableView 上。因为我尝试创建一个新的 viewController 并在其上添加了 3 个具有相同 UITableViewCell 约束的标签。标签在不同 iPhone 上的位置没有改变。

我试图用谷歌搜索这个问题,但似乎没有人遇到过这个问题。

如果有人对这个问题有任何建议,请在这里回答。任何帮助将不胜感激。

更新: 以下是设备截图:

【问题讨论】:

  • 不,我必须在单独的项目中创建类似的设计,然后将其添加到现有项目中。

标签: ios xcode uitableview uiviewcontroller ios-autolayout


【解决方案1】:

这不是错误,而是故事板布局渲染问题。当您在不同设备之间切换时(来自View as 面板),界面构建器会更改其大小。

UITableViewCell 的情况下,它不会根据设备大小(宽度)更改其大小(宽度)。

您的问题的答案:您需要根据界面生成器大小更新/重置UITableViewCell 大小。

【讨论】:

  • 感谢 Krunal 的回答。我尝试在设备上进行相同的测试,问题是一样的。标签根据其内容改变其宽度。
  • 您是否在其中设置了预定义的文本?是的,我看到你的约束显示了更新的大小,这是额外内容大小的原因。
  • 我已经用从设备截取的新屏幕截图更新了问题。标签上的文本在运行时会发生变化。这里,在 cellForRowAtIndexPath 方法中设置了虚拟文本进行测试。
  • 好的。我将创建一个虚拟的。
  • 请从此链接下载示例项目:dropbox.com/s/lmp56tfj8vr49ma/TableViewCellIssue.zip?dl=0
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多