问题描述
我在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,9.5) for all 4
}
解决方法
找到了解决方案。
在调用上述for循环之前调用了stepsStack.layoutIfNeeded()
。
为了清楚起见,在我的自定义UIView类的layoutSubviews
方法内添加了堆栈视图。
感谢Larme的提示。