替换 UIStackView 中的视图

Replace view inside UIStackView

我有一个 UIStackView,里面有 5 个按钮。这些按钮之一 (#4) 需要在单击后由 UIPickerView 替换,一旦其他四个按钮之一切换回 UIButton已选中。

UIStackView水平,对齐是填充,分布是按比例填充[=33] =].

堆栈是使用 故事板 完成的,我正在尝试将视图替换为:

    override func viewDidLayoutSubviews(){
        self.pickerView.frame.origin = self.view.viewWithTag(40)!.frame.origin
        self.pickerView.frame.size = CGSize(width: 30, height: 30)

}

但是我的 UIStackView 在点击按钮后不会重新排列,按钮 #5 停留在 UIPickerView.[=17= 的顶部]

有什么想法吗?

好的,我找到了代码。我不得不将 addView 替换为 addArrangedSubview

最终代码(按下按钮时):

    let stack = (self.view.viewWithTag(20) as! UIStackView)
    stack.addArrangedSubview(self.pickerView)