StoryBoard 中的自定义 UITableViewCell AutoLayout 右对齐

Posted

技术标签:

【中文标题】StoryBoard 中的自定义 UITableViewCell AutoLayout 右对齐【英文标题】:Custom UITableViewCell AutoLayout right alignment in StoryBoard 【发布时间】:2015-09-23 02:11:50 【问题描述】:

我想要(实际上不是)将UIButton 粘贴到UITableViewControllerUITableView 中的原型自定义UITableViewCell 的右侧(边距)边缘。我定义了 2 个约束:尾随空间到:Superview(内容视图)和顶部空间到:Superview。不得不说这在UIViewController 中工作得很好。但是当我在 iPhone5 模拟器上运行它时,我的UIButton 不在可见区域内。我可以在高分辨率设备模拟器上找到它,但它不应该在所有设备上都可见吗? 我已经看过 AutoLayout 教程(包括斯坦福课程和 HSE Swift 课程)和所有的谷歌,但坚持不懈:( 如果您能睁开我的眼睛看到UITableViewCell AutoLayout 的特殊性,那就太好了。非常感谢!

UPD:我现在正在浏览其中一个 tuts,UITableViewCell 的行为与教程中的不同(!)似乎单元格不再适合UITableView。我知道这看起来像是一个非常新手的问题(实际上我是),但它会是 Xcode7 或新更新的 ios9 中的问题吗?

【问题讨论】:

【参考方案1】:

您是否对表格视图应用了约束,即前导尾随顶部和底部。

【讨论】:

就是这样!我将UITableView 放在场景(视图)上,定位它以使其覆盖整个场景。这样就不可能将新约束按 ctrl 拖动到超级视图,甚至无法意识到这个问题。在UITableViewController 中它默认工作,但在UIViewController 中不起作用。单元格被正确约束,但UITableView 超出了右边界。现在我通过右下角的图钉图标将其固定,瞧!感谢您的帮助!【参考方案2】:

首先清除该按钮的约束然后:-

如上图点击右栏和上栏然后点击添加2约束。这是你要找的吗?

【讨论】:

Chathuranga Silva,感谢您的回复,但它仍然不在可见区域内。看起来(我认为确实如此)约束工作正常,但单元格本身比屏幕宽度宽。或者UITableView 更宽。可能是新的 iOS9 或 Xcode7 问题,还是您的布局模拟正确? 删除那个按钮,新建一个按钮。然后按照上面的操作。有什么进展吗?? 是的,我确实做到了,甚至还有一次。实际上我做了更多:我添加了 Detail / Disclosure 标志(在 Attribute Inspector 处检查)并且......我看不到它!除非我在 iPad Retina 上模拟。甚至这个标志也隐藏在屏幕右边缘之外((有什么想法吗? 感谢您的帮助!问题是UITableView 并没有被限制在场景中,并且显然不是原因与UITableViewController 一起正常工作,并且必须在UIViewController 中明确限制。

以上是关于StoryBoard 中的自定义 UITableViewCell AutoLayout 右对齐的主要内容,如果未能解决你的问题,请参考以下文章

无法更改 Storyboard 中的自定义 UICollectionViewCell

如何在 Storyboard 中的自定义 UITableViewCell 中配置 UITableView?

从 StoryBoard 加载的自定义 UITableViewCell 未解除分配

使用从 Storyboard 定义的自定义 UITableViewController 和原型单元进行随机 UI 更新

如何在 Storyboard 控制器中重用定义为原型单元的自定义 UITableViewCell

不使用 Storyboard segues 的自定义视图转换 (Swift)