【问题标题】:How to center both vertical and horizontal inside a UIStackView如何在 UIStackView 中将垂直和水平居中
【发布时间】:2018-01-06 11:54:09
【问题描述】:

我有一个 50x50 尺寸的简单 UIImageView。 如果我有一个大小为 100x100 的 UIView 并且我想将图像居中放置在其中,我所要做的就是设置这些

但是我该如何处理大小为 100x100 的 UIStackView

编辑我想我应该更清楚。问题是,我如何在 UIStackview 内垂直和水平居中图像?

【问题讨论】:

  • stackView 是 UIView 的子类,也可以进行同样的处理
  • stackview 中只有图像视图

标签: ios objective-c swift uikit uistackview


【解决方案1】:

使用两个堆栈视图。

居中对齐的垂直堆栈视图。

里面是一个居中对齐的水平堆栈视图。

里面是你的形象。

【讨论】:

    【解决方案2】:

    您需要将对齐设置为UIStackView 的属性检查器内部居中

    【讨论】:

    • 问题问如何垂直和水平居中。
    • @Fogmeister 然后只需添加前导和尾随约束,即 16 pt,并将优先级设置为更大或等于。这就是水平stackView的全部内容。对于垂直,您应该相应地设置顶部和底部约束。
    • @MykhailoLysenko uistackview 在那里,因此您不必弄乱这么多自动布局约束。 Apple 建议和推荐嵌套堆栈视图。在水平堆栈视图中添加垂直堆栈视图非常适合垂直和水平居中。
    • @Fogmeister 任何 stackView 都是 UIView 子类,它会导致占用一些图形内存。并且约束是一个 NSObject 子类,并且只接受几个值和对视图或视觉格式字符串的引用。就像您可以在视图上添加许多子图层(即绘制自定义边框),但最好使用 CGPath 来绘制它们,CGPath 只是一个点数组。顺便说一句,添加这两个约束并不困难和棘手,而且对于应用程序来说更轻量级。如果您最终计算所有这些改进,您会发现约束是一种更好的方法。
    • @MykhailoLysenko UIStackView 不是渲染视图,不占用任何图形内存。它不像透明层等......它被用作布局设备。很像约束。
    【解决方案3】:

    检查stackview设置的属性检查器:

    【讨论】:

      【解决方案4】:

      按照这些步骤操作。

      1) 拖动 Uiimageview。

      2) 点击 UIimageview。按 Ctrl 并向下或侧向拖动到父视图。

      3) 点击“在视图中垂直居中”和“在视图中水平居中”

      4) 然后设置高度和宽度,如下所示。

      就是这样。无论设备类型如何,您的 imageview 都将位于中心。 祝你好运。

      如果您有任何问题,请发表评论。如果对您有帮助,请采纳答案。

      【讨论】:

      • 我想我应该更清楚。问题是,我如何在 UIStackview 内垂直和水平居中图像?
      • 可能是我没有正确回答您的问题。但 UIStackview 也可以作为普通视图使用。即使 UIImage 在 UIStackView 中,您也可以应用这些步骤。您可以使用相同的步骤相对于任何父视图定位它。将 UIImage 拖到 UIStackview 并单击水平和垂直中心。它会将 UIImage 对齐在 stackview 的中心。但在此之前,您必须对 UIStackView 应用约束。
      • 使用 StackView 的全部意义在于您不需要在堆栈视图中使用约束。如果您在堆栈视图中使用约束(除高度和宽度之外的任何内容),那么您不应该使用堆栈视图。像这样使用堆栈视图居中的方法是使用嵌套堆栈视图。一个用于水平中心,一个用于垂直中心。
      • 问题集中在 UIStackView 中!!
      猜你喜欢
      • 2022-01-09
      • 1970-01-01
      • 2023-03-30
      • 2019-07-19
      • 2015-08-29
      相关资源
      最近更新 更多