如何快速从 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(没有情节提要)
如何从嵌入在 UITableViewCell (Swift) 中的 UICollectionView 的单元格中分离出来?