在 uiTableViewCell 中将 UIView 居中

Posted

技术标签:

【中文标题】在 uiTableViewCell 中将 UIView 居中【英文标题】:Center a UIView inside a TableViewCell 【发布时间】:2017-11-13 19:44:41 【问题描述】:

我遇到了一个以前从未遇到过的奇怪问题(对 ios 来说还很新)。我正在尝试开发一个博客阅读器应用程序,并且在我的主视图中使用 UITableView。在 TableView 中,我添加了 1 个原型单元并将其高度修改为更大一些。

为了在 TableViewVell 中创建“浮动”、“阴影”或“卡片”效果,我添加了另一个包含封面图像和摘要的视图。

我面临的问题与 Storybords 的预览助手显示的布局有关。

即使对于 iPhone 8 (xCode 9.1),根据我设置的限制条件,一切看起来都很好,但对于 iPhone SE 和 8 Plus,情况看起来却很奇怪,即使在模拟过程中,事情看起来并不像描述的那样。

我看过 WWDC 视频、YouTube 视频,甚至是一些很棒的教程,但似乎都没有超越基础知识,真正涵盖了我面临的这个问题。

截图如下:

XCode Storyboards Preview

我做了一个项目的简化演示,可以在 GitHub 上查看:

https://github.com/sebastiannitu/ConstraintIssues

如果 seomeone 能一劳永逸地为我解决这个问题,我将不胜感激。我确信这只是我在做一些愚蠢的事情,但我真的不能再浪费时间了。我已经投入了大约 2 周的时间来解决这个问题!

非常感谢您提前回复!

【问题讨论】:

似乎是预览中的错误。该问题仅在使用助理编辑器打开时处于预览状态,如果您只是在情节提要本身中选择各种设备(您将用于将约束应用于各种尺寸类的设备),您将看到您的视图正在根据单元格的框架进行扩展.所以我相信你的约束没有问题 我也看到了与 Xcode 10.1 类似的情况。在这里查看我的问题***.com/questions/54524507/… 【参考方案1】:

这是 Xcode 中的一个轻微错误,但没什么大不了的。这样做:

    canvas 中更改 设备类型,例如到 iPhone SE。

    切换到您的代码,例如视图控制器。

    切换回情节提要。请注意,约束现在已固定在画布中!

    显示该设备类型的预览

所以它有点烦人,但它确实有效。这是 iPhone SE 的预览:

这是 iPhone X 的预览:

【讨论】:

【参考方案2】:

您的约束设置很好。问题是只有助理编辑。如果您在模拟器中运行它,视图(橙色视图)将正确调整大小。

这是橙色视图在 iPhone 8s(左)和 iPhone 5s 上运行时的屏幕截图。

我没有上传项目,但如果您有问题,请告诉我。

【讨论】:

以上是关于在 uiTableViewCell 中将 UIView 居中的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 ios 6 中将 uibarbutton 样式的相机添加到 uitableviewcell

如何在 uitableviewcell 中将边距设置为零?

在 uiTableViewCell 中将 UIView 居中

无法在 IOS 6 中将 UILabel 添加到 UITableViewCell

使用自动布局在 UITableViewCell 中将 UILabel 居中

如何在 Swift 3 中将 UIButton 添加到我的 UITableViewCell 中?