【问题标题】:hide button in a collectionview cell when trigger触发时隐藏collectionview单元格中的按钮
【发布时间】:2016-06-24 08:38:56
【问题描述】:

我有包含 del 按钮并添加的 collectionview

    cell.coupon_add.tag = indexPath.row
    cell.coupon_add?.layer.setValue(id, forKey: "coupon_id")
    cell.coupon_add?.layer.setValue(uID, forKey: "user_id")
    cell.coupon_add?.addTarget(self, action: #selector(ViewController.addItem(_:)), forControlEvents: UIControlEvents.TouchUpInside)

  func addItem(sender:UIButton) {
    let point : CGPoint = sender.convertPoint(CGPointZero, toView:collectionview)
    let indexPath = collectionview!.indexPathForItemAtPoint(point)
    let cell = collectionview.dequeueReusableCellWithReuseIdentifier("listcell", forIndexPath: indexPath!) as! ListCell

    let coupon_id : String = (sender.layer.valueForKey("coupon_id")) as! String
    let user_id : String = (sender.layer.valueForKey("user_id")) as! String
        if user_id == "empty" {
            self.login()
        }else{
            print("adding item**",indexPath)

            cell.coupon_add.hidden = true
            cell.coupon_del.hidden = true
            let buttonRow = sender.tag
            print(buttonRow)
        }
}

我想在触发时隐藏添加按钮。我只是得到了 indexPath 的值,但我不知道如何在不刷新 collectionview 的情况下隐藏它

【问题讨论】:

  • @funi1234 我试试你的代码它不起作用
  • 也许this 回答会有所帮助
  • @tahavath let indexArray = NSArray(object: indexPath!) self.collectionview.reloadItemsAtIndexPaths(indexArray as! [NSIndexPath]) 我这样尝试我遇到崩溃可以检查原因
  • 错误是什么?
  • 现在可以了,我没有收到错误但什么也没发生按钮没有隐藏@tahavath

标签: ios swift swift2 uicollectionview


【解决方案1】:

创建自定义单元格

class CustomCell: UICollectionViewCell {

    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var delButton: UIButton!
    @IBOutlet weak var addButton: UIButton!

    @IBAction func addTapped(sender: AnyObject) {
       delButton.removeFromSuperview()
       addButton.removeFromSuperview()
    }
}

典型的 CollectionView 控制器

class ViewController: UICollectionViewController {

    override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 10;
    }

    override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! CustomCell

        cell.label.text = "Cell \(indexPath.row)"

        return cell
    }

}

当你点击它们时,你的按钮就会消失

【讨论】:

  • 谢谢,但它会在触发按钮时删除所有单元格
  • 它只适用于我的收藏视图单元格的右侧。
  • 右边是什么意思?你能更新你的问题吗?
  • 我使用像 pinterest board 这样的 collectionview,但是当我检查 indexpath 时,他们有相同的 indexPath
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
  • 2019-08-24
  • 1970-01-01
  • 2023-03-25
  • 2015-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多