【问题标题】:iOS: How can I make all my UIImageViews the same size?iOS:如何使我所有的 UIImageViews 大小相同?
【发布时间】:2020-12-31 02:54:17
【问题描述】:

目前,我有一个垂直 StackView。在那个 StackView 里面,有三个 Horizo​​ntal StackView。在每一个中,有两个 UIView 正在加载我创建的 XIB Storyboard View。它看起来像这样:

在每个 XIB UIView 中都有一个 ImageView 和一个 Label。目前我遇到一个问题,即第一个 UIView 中的第一个 ImageView 的大小正确,但由于某种原因,它后面的所有其他 ImageView 都已缩小。这就是我的意思:

我发现,如果我取消注释为“FIRST ITEM”的 ImageView 设置图像的代码行,“SECOND ITEM”现在将是正确的大小,之后的所有内容都将是如下所示缩小:

由于某种原因,只有首先设置的 ImageView 的大小才会正确,之后的所有内容都会缩小。

XIB文件的约束如下:

ImageView 上的内容模式是“Aspect Fit”。

总体垂直 StackView 和每个水平 StackView 都将“分布”设置为“均等填充”。

我在viewDidLoad函数中设置了所有的UIView信息如下:

calendarMenuItem.setBackgroundColour(colour: Environment.Colours.navyGreen)
calendarMenuItem.iconImageView.image = UIImage(systemName: "calendar.circle.fill")
calendarMenuItem.headingLabel.text = "FIRST ITEM"

有人知道我该如何解决吗?如果我没有提供足够的信息,我很抱歉,因为我不确定还能提供什么。如果您需要查看更多内容,我可以更新问题。

谢谢。

【问题讨论】:

  • 提供有关在 XIB 中设置图像视图的详细信息 - 哪些约束,哪些内容模式
  • 只需使用 CollectionView。
  • @EugeneDudnyk 我更新了这个问题。如果还有什么我可以提供的,请告诉我。
  • @MuhammedGul 如果我不能让它工作,这是我可以探索的一种方法,虽然我真的不想使用 UICollectionView
  • 如果您了解任何视图的intrinsicContentSize 的工作原理,这真的很容易。他们可以确定他们的大小和堆栈视图或父视图将使用该大小作为布局的默认值。 developer.apple.com/documentation/uikit/uiview/…

标签: ios swift xcode uiimageview stackview


【解决方案1】:

问题似乎是因为 ImageView 的底部约束被连接到标签的顶部。当我改为将约束添加到视图底部时,它被修复了。

在 iPhone 8 等较小的设备上,ImageView 缩小到较小的方式仍然存在一些尺寸问题,但它确实解决了只有第一个 View 的 ImageView 尺寸正确而所有其他尺寸都较小的问题。现在它们的大小都一样了。

【讨论】:

    【解决方案2】:

    你可以尝试给图像固定宽度和高度,它会起作用

    【讨论】:

      猜你喜欢
      • 2015-11-15
      • 2017-01-08
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多