- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含多个 subview 的 super View ,其中包括 UICollectionView。 super View 有一个布局约束,将其位置固定在屏幕底部。我想通过更改该约束然后在 UIViewController 上调用 self.view.layoutIfNeeded() 来隐藏 View 。这工作得很好,除了 UICollectionView 的单元格在动画开始时下降到 alpha = 0,然后在结束时变回 alpha = 1。
这不是很明显,因为动画很快,但我不明白为什么会发生这种情况。没有其他 subview 具有此行为,并且 UICollectionView 本身不会更改 alpha...仅更改单元格。
隐藏我调用的 super View :
entryOffset.constant = entryHeight.constant
UIView.animateWithDuration(5, animations: {
self.view.layoutIfNeeded()
}) { (finished) in
}
随着动画的缓慢速度(5秒),很明显细胞完全隐藏......然后淡入。我已经打破了内部:
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {}
您可以看到单元格正在重新加载(我也不明白,因为它只是上层约束发生了变化......而不是 UICollectionView 本身。
关于单元格的 alpha 值为何发生变化以及如何防止这种情况有什么想法吗?
最佳答案
通过对流布局进行子类化,我使单元格的 alpha 值不发生变化:
import UIKit
class NoFadeFlowLayout: UICollectionViewFlowLayout {
override func initialLayoutAttributesForAppearingItem(at itemIndexPath: IndexPath) -> UICollectionViewLayoutAttributes? {
let attrs = super.initialLayoutAttributesForAppearingItem(at: itemIndexPath)
attrs?.alpha = 1.0
return attrs
}
override func finalLayoutAttributesForDisappearingItem(at itemIndexPath: IndexPath) -> UICollectionViewLayoutAttributes? {
let attrs = super.finalLayoutAttributesForDisappearingItem(at: itemIndexPath)
attrs?.alpha = 1.0
return attrs
}
}
关于ios - 为什么我的 UICollectionViewCells 在动画 super View 约束更改时会更改 alpha 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39939413/
我创建了一个分支来开发新功能。由于这个新功能完全是作为一个新项目开发的,唯一可能的冲突来源是解决方案文件。 随着功能的开发,主分支更新了几次。当我完成开发和测试时,我做了: git checkout
我是一名优秀的程序员,十分优秀!