访问嵌套堆栈视图

Posted

技术标签:

【中文标题】访问嵌套堆栈视图【英文标题】:Access nested stack views 【发布时间】:2017-02-24 01:34:18 【问题描述】:

显然监督一些简单的事情。需要在另一个堆栈视图中访问嵌套堆栈视图。

如果我想为乘客 2 的所有嵌套堆栈视图设置间距,我该怎么做?

// Select passenger 2
let tag = 2

// Select wrapper stackView for passenger 2
let stackView = self.view.viewWithTag(tag) as! UIStackView!

let nestedStackViews = stackView. <-- WHAT GOES HERE??

for sv in nestedStackViews
    sv?.spacing = 0 // Set nested stackView spacing to 0 to avoid constraint issues

可视化(需要将firstName_P2、surname_P2和email_P2的间距设置为0)

解决方案:基于 Winter 的回答

为可能遇到困难的其他人提供更多详细信息,请确保将子视图转换为堆栈视图

// Select passenger 2
let tag = 2

// Select wrapper stackView for passenger 2
let stackView = self.view.viewWithTag(tag) as! UIStackView!

if let nestedStackViews = stackView?.subviews
    for sv in nestedStackViews
        let nsv = sv as! UIStackView
        nsv.spacing = 0
    

【问题讨论】:

【参考方案1】:

使用subviews:stackView.subviews

【讨论】:

谢谢!之前尝试过 - 但从你那里看到它让我意识到将子视图转换为堆栈视图。

以上是关于访问嵌套堆栈视图的主要内容,如果未能解决你的问题,请参考以下文章

嵌套容器:为什么我无法访问堆栈队列顶部的堆栈? C ++

嵌套堆栈视图:以编程方式附加子堆栈视图时,子堆栈视图不在其父堆栈视图内

访问视图中的嵌套表单字段(嵌入表单集合)

使用原生视图封装时访问嵌套组件的DebugElement

如何解决嵌套堆栈视图的布局问题?

无法满足嵌套堆栈视图的约束