【问题标题】:Replace view inside UIStackView替换 UIStackView 中的视图
【发布时间】:2018-07-29 23:34:42
【问题描述】:

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

UIStackView水平,对齐方式填充,分布按比例填充

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

    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的顶部。

有什么想法吗?

【问题讨论】:

  • 如果您想在按下按钮后更改内容,请在按钮的目标/选择器中进行。您需要删除排列的子视图并将排列的子视图插入堆栈视图。不要硬编码框架/大小。请阅读 UIStackView 文档

标签: ios uibutton uipickerview uistackview xcode-storyboard


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-21
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    相关资源
    最近更新 更多