【问题标题】:Removing subview from stackView places it at top of screen从 stackView 中删除子视图将其放置在屏幕顶部
【发布时间】:2018-06-06 10:43:17
【问题描述】:

当我像这样从堆栈视图中删除排列的子视图时:

if userErrorLabel.isDescendant(of: stackView!) == true {
     stackView?.removeArrangedSubview(userErrorLabel)
}

它将它发送到屏幕顶部,而不是删除它,这真的很奇怪。

状态标签中的红色消息。

谢谢

【问题讨论】:

    标签: ios swift layout uistackview


    【解决方案1】:

    你可以试试这个

     userErrorLabel.removeFromSuperview()
    

    【讨论】:

    • 我宁愿不必切换隐藏属性,因为这似乎是错误的做法。但现在必须这样做
    • 使用removeArrangedSubview 只是将视图从由 UIStackView 管理的大小和位置中移除。它仍将是其视图层次结构的一部分,因此可见。如果您想永久删除它,请使用removeFromSuperview 方法。 isHidden 属性只有在您隐藏它然后想要再次显示时才需要使用。此处不需要使用“layoutIfNeeded”。如果您需要进一步研究,所有这些都在文档中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多