如何快速从 UICollectionView 中的 UIView 中删除焦点阴影?

Posted

技术标签:

【中文标题】如何快速从 UICollectionView 中的 UIView 中删除焦点阴影?【英文标题】:How do I remove the focus shadows from a UIView in a UICollectionView in swift? 【发布时间】:2016-01-08 16:57:34 【问题描述】:

我正在快速开发一个 tvOS 项目,并且有一个水平对齐的 UICollectionView,其中每个 UICollectionViewCell 是一个自定义 UIView,由一个 UIImageView 和一个 Label 组成。所以我的 UICollectionView 看起来像这样:

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

我还希望图像随着特定视图获得和失去焦点而扩大/缩小。在我的收藏视图中,我添加了代码

func collectionView(collectionView: UICollectionView, canFocusItemAtIndexPath indexPath: NSIndexPath) -> Bool 
        return true

在我的自定义单元格中,我有一行

imageView.adjustsImageWhenAncestorFocused = true;

所以这有点工作,虽然有 2 个问题。

似乎集合中的所有视图下方都有一个奇怪的阴影,即使它们没有聚焦。然后当他们聚焦时,图像按预期增长,但它下面还有另一个阴影。你可以在这里看到我的意思:

集合中的第一项具有焦点

如何摆脱它们?我已经尝试了所有这些,但它们似乎都不起作用

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

【问题讨论】:

您找到解决方案了吗? ATM机遇到同样的问题 否 :( 我最终设置了 imageView.adjustsImageWhenAncestorFocused = false 并在焦点集中时手动设置其外观,而不是在设置为 true 时使用默认样式 【参考方案1】:

目前不可能。我把这个问题转发给了苹果,得到的回复是:https://forums.developer.apple.com/message/105045#105045

【讨论】:

好了,这一切都结束了。谢谢【参考方案2】:

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

self.clipToBounds = true

self.layer.cornerRadius = 10

如果您需要恢复圆角边缘。

【讨论】:

以上是关于如何快速从 UICollectionView 中的 UIView 中删除焦点阴影?的主要内容,如果未能解决你的问题,请参考以下文章

快速,如何使用 UICollectionView

如何以编程方式快速创建 uicollectionview(没有情节提要)

如何从嵌入在 UITableViewCell (Swift) 中的 UICollectionView 的单元格中分离出来?

如何在 UICollectionView 中快速添加分页?

如何快速获取两个 UICollectionView 的 ScrollView?

如何快速在uicollectionview中动态访问单元格属性