如何在Swift的UICollectionView中从UIView中移除焦点阴影?

8

我正在使用Swift开发一个tvOS项目,其中包含一个水平对齐的UICollectionView,每个UICollectionViewCell都是一个自定义UIView,由一个位于顶部的UIImageView和一个位于其下方的Label组成。因此,我的UICollectionView如下所示:

| UIImageView |   | UIImageView |
| Label       |   | Label       |  

我希望图片在特定视图获取和失去焦点时能够缩小/放大。在我的集合视图中,我添加了以下代码:
func collectionView(collectionView: UICollectionView, canFocusItemAtIndexPath indexPath: NSIndexPath) -> Bool {
        return true
}

在我的自定义单元格类中,我有以下代码行:
imageView.adjustsImageWhenAncestorFocused = true;

所以这个有点起作用,但是有两个问题。似乎集合中的所有视图都有一种奇怪的阴影,在它们没有焦点时也是如此。当它们获得焦点时,图像按预期增长,但是它下面还有另一个阴影。你可以在这里看到我的意思:this screenshot 集合中的第一项具有焦点。我该如何摆脱它们?我已经尝试了所有这些方法,但它们似乎都不起作用。
contentView.layer.shadowOpacity = 0.0  // My imageView is a subview of this
contentView.layer.shadowColor = UIColor.clearColor().CGColor
imageView.layer.shadowOpacity = 0.0
imageView.layer.shadowColor = UIColor.clearColor().CGColor

你找到解决方案了吗?我目前也在为同样的问题苦苦挣扎。 - Steaphann
最终我将imageView.adjustsImageWhenAncestorFocused设置为false,并在其聚焦时手动设置其外观样式,而不是使用默认样式。 - Programmer Unextraordinair
2个回答

3

好的,这就结束了。谢谢。 - Programmer Unextraordinair

0

我找到了UITableViewCell和CollectionViewCell的解决方案:

self.clipToBounds = true

self.layer.cornerRadius = 10

如果您需要恢复圆角,则可以使用此方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接