【问题标题】:Adding center constraints to UILabel in Xamarin UITableViewCell does not center label在 Xamarin UITableViewCell 中向 UILabel 添加中心约束不会使标签居中
【发布时间】:2018-12-18 06:15:44
【问题描述】:

当我将单个标签放在自定义 UITableViewCell 中进行测试并使用约束使标签居中时,它最终根本没有居中。

我更愿意在代码中完成这一切,但必须使用可视化设计器。我错过了什么?

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

【问题讨论】:

  • 你设置标签的TextAlignment了吗? label.TextAlignment = UITextAlignment.Center;
  • 我没有更改默认对齐方式
  • 那么你解决了这个问题吗?
  • 鉴于 UILabel 上的布局约束,没有文本对齐方式应该以标签文本在该图像中的位置结束。我添加了另一张图片以进一步证明内容视图似乎比单元格大得多
  • 检查表视图约束和标签约束

标签: c# ios xamarin xamarin.ios


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    我认为您应该在标签中添加 leadingtrailing 约束。这应该可以阻止它们扩散到边界之外。我还建议添加topbottom 约束来处理基于标签文本内容的自动调整大小。

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

    【讨论】:

      【解决方案3】:

      问题最终出现在UITableViewUITableViewCell 之外。嵌入表格的视图控制器启用了auto layoutuse size classes。为主机视图控制器禁用那些解决了这个问题。

      我在设置UITableView 边界的代码行上设置断点后发现了这个问题。它表明它继承的父边界的宽度为 600。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-24
        • 1970-01-01
        相关资源
        最近更新 更多