【发布时间】:2020-12-31 02:54:17
【问题描述】:
目前,我有一个垂直 StackView。在那个 StackView 里面,有三个 Horizontal 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