UIView在动画块

时间:2016-08-20 06:12:33

标签: ios swift uiview hidden uistackview

我在UIView子类上有这段代码:

override var hidden: Bool {
    willSet {
        DDLogDebug("Will set hidden=\(String(newValue)) on \(item?.name))")
    }
    didSet {
        DDLogDebug("Did set hidden=\(String(hidden)) on \(item?.name))")
    }
}

出于某种原因,我设置了false,但它仍然是true,如下所示:

> Will set hidden=false on Optional("74D8E4CE-5E14-4914-8483-E9F66D2A79B7"))

> Did set hidden=true on Optional("74D8E4CE-5E14-4914-8483-E9F66D2A79B7"))

这个问题的唯一特点是只有在UIView.animateWithDuration(...)区块内运行时才会发生这种情况。如果删除动画,则属性设置正确。

有关可能发生的事情的任何想法?这让我发疯,呵呵

编辑:

更多信息,我要隐藏的这个UIView是arrangedSubview的{​​{1}}。它适用于前几次尝试,但突然停止工作,没有任何明显的模式。

1 个答案:

答案 0 :(得分:5)

这是UIStackView中的一个错误。

Here是另一个问题,描述了我遇到的完全相同的问题。 This是针对这一特定问题的开放式雷达。

我找到的解决方案是避免将hidden设置为相同的值两次。

if (subview.hidden) {
    subview.hidden = false
}