gpt4 book ai didi

ios - 如果在集合的两侧,UICollectionViewCell 在缩放时不会绘制阴影

转载 作者:行者123 更新时间:2023-11-29 11:39:18 26 4
gpt4 key购买 nike

我在处理我的第一个 tvOS 应用程序(实际上是我多年来的第一个 iOS 应用程序)时遇到了一个有趣的问题。

我想要实现的是在我的 UICollectionView 的单元格被选中时自定义缩放和阴影。

奇怪的是我能够看到单元格的缩放效果和阴影,但是当它们位于集合的两侧时,不会呈现阴影。

让我用几张图片向您展示问题。

这是我想要实现的正确结果,它适用于“内部”单元格:更大的阴影 + 缩放(缩放)。

Correct zoom and shadow for internal cell

这是我为“外部”单元格得到的错误结果:缩放(缩放)没问题,但阴影没有更新。这对集合右侧的另一个“外部”单元格也有效。

External cell without shadow update

更有趣的是,如果我不缩放单元格,那么阴影会正确更新:

No scaling, so the shadow is correctly updated

这是我的自定义 UICollectionViewCell 的代码:

import UIKit

class MyCloudCollectionViewCell: UICollectionViewCell {

var selectTrans: UIFocusAnimationCoordinator?
var scale : CGFloat = 0.0

override func layoutSubviews() {
super.layoutSubviews()

self.clipsToBounds = false
self.layer.masksToBounds = false
self.layer.shadowOpacity = 0.20;
self.layer.shadowRadius = 4.0;
self.layer.shadowOffset = CGSize(width: 1, height: 6);
self.scale = 1.0
}

override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) {
coordinator.addCoordinatedAnimations({
super.didUpdateFocus(in: context, with: coordinator)

if self.isFocused {
self.layer.shadowOpacity = 0.25;
self.layer.shadowRadius = 4.0;
self.layer.shadowOffset = CGSize(width: 1, height: 18);
self.scale = 1.19
let transform = CGAffineTransform(scaleX: self.scale, y: self.scale)
self.layer.setAffineTransform(transform)
} else {
self.layer.shadowOpacity = 0.20;
self.layer.shadowRadius = 4.0;
self.layer.shadowOffset = CGSize(width: 1, height: 6);
self.scale = 1.0
let transform = CGAffineTransform(scaleX: self.scale, y: self.scale)
self.layer.setAffineTransform(transform)
}
}, completion: nil)
}
}

集合也有这些设置:

self.collectionView?.clipsToBounds = false
self.collectionView?.layer.masksToBounds = false

最佳答案

问题在于基础 View 单元不是执行此类操作的正确位置。

尝试使用自定义容器 View 而不是基础 View 单元格。

关于ios - 如果在集合的两侧,UICollectionViewCell 在缩放时不会绘制阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47494479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com