首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SWIFT4.2使用UICollectionViewCell添加/删除按钮

SWIFT4.2使用UICollectionViewCell添加/删除按钮
EN

Stack Overflow用户
提问于 2018-10-27 17:56:40
回答 1查看 86关注 0票数 0

当按下按钮(在UIButton之外)时,我试图在UICollectionView中的每个单元格中添加一个UICollectionView,然后在没有按钮时删除它们。

基本上,一个boolean如果是真-显示/添加,否则隐藏/删除。这是我的cellForItemAt。我还尝试将它添加到willDisplay cell中。

代码语言:javascript
复制
let btnItemDelete = UIButton()
btnItemDelete.tag = indexPath.row
btnItemDelete.addTarget(self, action: #selector(self.btnItemDeleteClick), for: .touchUpInside) //Selector works
btnItemDelete.frame = CGRect(x: cell.bounds.width-22, y: 2, width: 20, height: 20) //Creation works
btnItemDelete.setImage(deleteImage, for: .normal) //Image works



if (isEdit) {
    //Add or Show
    cell.addSubview(btnItemDelete)
}
else {
    //Delete or Hide
    btnItemDelete.removeFromSuperview()
}

在运行此操作时,isEdit最初被设置为false,并且没有显示按钮。单击按钮以更改布尔值后,按钮将出现。当单击按钮将布尔值设置为false时,按钮将保持不变。我想这是与btnItemDelete.removeFromSuperview()有关的东西--有什么不同的方法吗?我想我无法隐藏/显示他们,因为它只是会在每次重新加载时向单元格添加一个新的按钮。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-27 18:05:50

首先您需要添加到

cell.contentView而不是cell

借此

代码语言:javascript
复制
btnItemDelete.removeFromSuperview()

删除一个没有添加的动态按钮,而是需要

代码语言:javascript
复制
cell.contentView.subviews.forEach {
  if $0.tag == 12 {
     $0.removeFromSuperview()
   }
}

我认为最好的方法是将先前的按钮添加到单元格布局中,然后管理它的外观,如

代码语言:javascript
复制
cell.myButton.isHidden = !isEdit
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53024755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档