【问题标题】:Using Auto-Layout in custom UITableViewCell在自定义 UITableViewCell 中使用自动布局
【发布时间】:2016-03-14 18:36:13
【问题描述】:

我正在使用自定义 UIableViewCell,其中包含四个 UILabels。

我目前正在努力解决的是,对于较小的 iPhone,我能够获得正确的纵向布局(数字对应于标签编号)。

我想要为更大的 iPhone 做的事情(下面的屏幕截图来自 6SPlus)是让标签 3 朝箭头方向移动:

我对第三个标签有三个约束。我的想法是让其中一个优先级为 1000 作为“基本约束”,另一个设置为 999,以更改单元格的间距:

但是,它似乎没有任何效果。如何使用基于尺寸类的约束来更改第三个标签的位置?谢谢!

编辑:这是我想要达到的近似说明:

【问题讨论】:

  • 你想让它“移动”是什么意思?是否要将其固定到标签 2?为什么不直接在标签 2 和 3 之间设置水平间距约束,而不是在 3 和 4 之间设置约束?
  • 最简单的选择是定义一个左右放大的容器UIView(在每一侧设置一个固定的水平间距),然后将标签“3”自动水平居中放置在该容器视图内.当然,每个“3”标签都应该有一个固定的宽度,所以它们看起来是一样的。
  • @AlejandroIván 这样做的一个问题是标签从 API 中提取数据,因此这些值并不总是固定长度。
  • 是的,但是容器视图将相对于标签 2 和 4 调整大小。然后标签 3 只是相对于容器居中。也许我误解了你想做什么?你能解释一下吗?
  • @AlejandroIván 我想我只需要在更大的 iPhone 上让我的第三个标签更接近我的第二个标签。

标签: ios iphone autolayout storyboard uitableview


【解决方案1】:

使用 UIStackView 并将标签放入其中。堆栈视图可以配置为均匀分布四个标签,在它们之间放置相同数量的空间,无论表格在更大或更小的手机上启动时如何增加或缩小。因此,你会在任何地方看起来都很棒。

(如果你不能使用 UIStackView,你可以使用不可见的间隔视图来达到相同的均匀分布效果。)

【讨论】:

  • 我很想这样做,但不幸的是,该应用的最低目标是 iOS 8:/
  • 好的,然后使用不可见的间隔视图来实现相同的结果。这实际上是 UIStackView 有效的作用(除了它们不是视图,但效果是一样的)。
  • 在这里查看我的讨论:stackoverflow.com/a/20865342/341994 是垂直的而不是水平的,但原理完全相同。
  • 我想我在听你说的话。您有任何示例项目来说明这一点吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 2017-09-05
  • 1970-01-01
  • 2019-11-30
  • 1970-01-01
  • 2015-12-29
  • 2017-05-29
相关资源
最近更新 更多