Swift 3中的集合视图单元格边框颜色取消选择[关闭]

Posted

技术标签:

【中文标题】Swift 3中的集合视图单元格边框颜色取消选择[关闭]【英文标题】:Collection view cell border color Deselect in Swift 3 [closed] 【发布时间】:2017-08-25 11:17:54 【问题描述】:

使用此代码选择或取消选择集合视图单元格的边框颜色,但它选择了边框颜色但没有取消选择边框颜色。 我用了这么多代码,但没有用。请分享信息

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)

Image2.image = UIImage(named: Images[indexPath.row])

let cell = collectionView.cellForItem(at: indexPath)
cell?.layer.borderWidth = 2
cell?.layer.borderColor = UIColor.green.cgColor
collectionView.allowsMultipleSelection = false
//        selectedIndexPath = collectionView.indexPathsForSelectedItems!


  private func collectionView(collectionView: UICollectionView, didDeselectItemAtIndexPath indexPath: IndexPath) 

let cell = collectionView.cellForItem(at: indexPath)
cell?.layer.borderWidth = 2
cell?.layer.borderColor = UIColor.gray.cgColor


【问题讨论】:

你的didDeselectItemAtIndexPath函数是private? private func collectionView(collectionView: UICollectionView, didDeselectItemAtIndexPath indexPath: IndexPath) 不应调用该方法,因为它不是 Swift 3 版本。 didSelectRowAtIndexPath not working, Swift 3的可能重复 感谢 Piyush Patel 成功了,我用错了方法 【参考方案1】:
func collectionView(_collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: IndexPath)  
    let cell = collectionView.cellForItemAtIndexPath(indexPath) as! DateCell

    cell.layer.borderWidth = 2.0
    cell.layer.borderColor = UIColor.gray.cgColor

func collectionView(_collectionView: UICollectionView, didDeselectItemAtIndexPath indexPath: IndexPath) 
    let cell = collectionView.cellForItemAtIndexPath(indexPath) as! DateCell

    cell.layer.borderWidth = 2.0
    cell.layer.borderColor = UIColor.gray.cgColor


Try This One 

【讨论】:

【参考方案2】:

我使用了您的代码,它运行良好,但只需从 didDeselectItemAt 方法开始时删除 private 关键字

func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) 
        let cell = collectionView.cellForItem(at: indexPath)
        cell?.layer.borderWidth = 2
        cell?.layer.borderColor = UIColor.gray.cgColor
    

【讨论】:

谢谢,是的,我做到了,它的工作原理

以上是关于Swift 3中的集合视图单元格边框颜色取消选择[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

集合视图 - 如何在每个部分中仅选择一个单元格

如何在布局转换期间为集合视图单元格的边框宽度/颜色设置动画?

UICollectionView 的不可见单元格未被取消选择 - Swift

vba如何对选取区域设置边框线颜色,边框包括外部边框和内部的。

ios UICollectionView 单元格选择和取消选择问题

Swift - 想要在单击集合视图单元格内的按钮时进行更改