获取 UIStackView 排列子视图的中心点

Get the centre point of UIStackView arranged subviews

我在 UITableViewCell 中有一个自定义视图。在这个视图中是一个简单的 UIStackView,带有 4 个图像(以编程方式添加)。我需要这些图像中的每一个相对于 UIView 超级视图的中心点或原点。我尝试了几种方法,但所有四个排列的子视图的中心点或原点都相同。

这是一个简化的代码:

for i in 0...3 {
                 
   print(stepsStack.arrangedSubviews[i].frame.origin) //(0,0) for all 4
   print(stepsStack.arrangedSubviews[i].convert(stepsStack.arrangedSubviews[i].frame.origin, to: self)) //(0,0) for all 4
            
   print(stepsStack.arrangedSubviews[i].convert(stepsStack.arrangedSubviews[i].center, to: self)) //(10.0, 9.5) for all 4
   print(stepsStack.convert(stepsStack.arrangedSubviews[i].center, to: self)) //(10.0, 9.5) for all 4
                
 }

找到解决方案。

在调用上面的for循环之前调用了stepsStack.layoutIfNeeded()。 明确地说,堆栈视图是在我的自定义 UIView class 的 layoutSubviews 方法中添加的。 感谢 Larme 的提示。