在我的一个控制器中,我将 UICollectionView 与两侧单元格一起使用(单元格的正面有一个按钮,如果用户点击它,单元格应该显示他/她单元格的另一侧)。
所以我在我的单元格中有这个:
firstView = UIView()
...
self.addSubview(firstView)
infoView = UIView()
...
self.insertSubview(infoView, belowSubview: firstView)
两个视图中都有很多元素,为了构建这些元素,我主要使用 Visual Format 约束和锚点。
IE
let topFirstViewConstraint = firstView.topAnchor.constraint(equalTo: self.topAnchor, constant: 4)
allConstraints.append(topFirstViewConstraint)
...
let goButtonCenter = goButton.centerXAnchor.constraint(equalTo: firstView.centerXAnchor, constant: 0)
allConstraints.append(goButtonCenter)
为了在正面和背面视图之间切换,我使用 UIView.transition:
UIView.transition(from: firstView, to: infoView, duration: 0.2, options: .transitionFlipFromLeft) { (success) in
}
它就像一个魅力,我根本没有任何自动布局错误。
但是,如果我试图从约束切换firstView
到infoView
firstView
狂野,反之亦然(我仍然没有任何错误,但我知道这些视图应该看起来如何,而且一团糟)。我尝试self.updateConstraints()
在过渡关闭中使用,但它不起作用。
有没有人经历过这样的事情?