在Xamarin UITableViewCell中向UILabel添加中心约束不会使标签居中

时间:2018-12-06 19:05:50

标签: c# ios xamarin xamarin.ios

当我在自定义的UITableViewCell中放置一个标签进行测试并使用约束使标签居中时,它最终根本就不会居中。

enter image description here

enter image description here

enter image description here

我宁愿用代码完成所有这些工作,但必须使用视觉设计器。我想念什么?

进一步描述ContentView似乎比屏幕宽度宽:

enter image description here

3 个答案:

答案 0 :(得分:0)

查看您的图片,然后看到UITableViewCell已正确约束,它应该在中间。即使没有帮助边框(表明内容更宽),我也看到主窗口或其他子视图缺少一些约束。

我不知道您是使用Table视图还是以某种方式将单元格填充到滚动视图中,但是您应该检查滚动视图/表视图的所有4个侧面的约束,以确保它占据了所有空间。如果确定约束存在,则可以尝试设置与scrollview或content相同的宽度(如果使用tableview)。

Set width to subview

此后,它应该创建相同的屏幕宽度约束。

答案 1 :(得分:0)

我认为您应该在标签中添加leadingtrailing约束。那应该阻止他们扩散到边界之外。我也建议添加topbottom约束,以根据标签的文本内容处理自动调整大小。

如果添加所有这四个约束,则不需要水平和垂直centre约束。

答案 2 :(得分:0)

问题最终落在UITableViewUITableViewCell之外。嵌入表的视图控制器已启用auto layoutuse size classes。为主机视图控制器禁用这些功能可以解决此问题。

我在设置UITableView界限的代码行上放置断点后发现了问题。结果表明,其继承的父边界的宽度为600。