Ios 使用按钮在UICollectionViewCell中编辑困难

Ios 使用按钮在UICollectionViewCell中编辑困难,ios,swift,uibutton,uicollectionviewcell,Ios,Swift,Uibutton,Uicollectionviewcell,我实现了一个编辑按钮,它在我的UICollectionViewCell中添加了一个按钮。当我按下Edit=>Edit时变成“完成”,当我按下Done时,应该删除按钮。 我的代码允许我添加按钮,但不隐藏它们。 有什么想法吗 @IBAction func editButton(sender: AnyObject) { if(editButton.titleLabel?.text as String! == "Edit") { editButton.setTitle("Done",

我实现了一个编辑按钮,它在我的
UICollectionViewCell
中添加了一个按钮。当我按下Edit=>Edit时变成“完成”,当我按下Done时,应该删除按钮。 我的代码允许我添加按钮,但不隐藏它们。 有什么想法吗

 @IBAction func editButton(sender: AnyObject) {

if(editButton.titleLabel?.text as String! == "Edit")
  {

    editButton.setTitle("Done", forState: UIControlState.Normal)
    for item in self.mainCollectionView.visibleCells() as! [SettingsCollectionViewCell] {

        let indexpath : NSIndexPath = self.mainCollectionView!.indexPathForCell(item as SettingsCollectionViewCell)!
        let cell : SettingsCollectionViewCell = mainCollectionView!.cellForItemAtIndexPath(indexpath) as! SettingsCollectionViewCell

        //Close Button
        let close : UIButton = cell.collectionViewButton
        close.hidden = false
    }
} 
else 
{
    editButton.setTitle("Edit", forState: UIControlState.Normal)
    self.mainCollectionView?.reloadData()
 }}
cellforrowatinexpath

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell 
     {

    let collectionCell:SettingsCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("collectionCell", forIndexPath: indexPath) as! SettingsCollectionViewCell

      if self.editButton.titleLabel?.text as String! == "Edit" 
        {
          collectionCell.collectionViewButton.hidden = true
        }
     else if editButton.titleLabel?.text as String! == "Done"
        {
         collectionCell.collectionViewButton.hidden = false
        }

        collectionCell.collectionViewButton!.layer.setValue(indexPath.row, forKey: "index")
        collectionCell.collectionViewButton!.addTarget(self, action: "deletePhoto:", forControlEvents: UIControlEvents.TouchUpInside)

        return collectionCell
}

您需要更改
cellForItemAtIndexPath
中用于从按钮检索标题的逻辑

为了从按钮检索标题文本,您需要使用
标题或状态(uicontrol状态)
而不是
标题标签?.text

下面是
cellForItemAtIndexPath

if self.editButton.titleForState(.Normal) == "Edit" {
       collectionCell.collectionViewButton.hidden = true
}
else if self.editButton.titleForState(.Normal) == "Done" {
    collectionCell.collectionViewButton.hidden = false
}

我认为这里最好的策略是在主故事板上创建一个按钮,并在按钮的上下文菜单上选中“隐藏”

更改按钮文本的步骤:为按钮创建插座(是,插座)。
@IBOutlet var editbutton:ui按钮

然后要取消隐藏它:

editbutton.hidden = false
(如果需要,可以将其放入if语句中)

在按钮的某个操作内(您必须将该按钮也指定给某个操作),如果按钮已按到“完成”位置,则执行此操作以隐藏该按钮:

然后,要在按钮仍显示“编辑”时更改按钮的文本,请执行以下操作:

if editbutton.title == "Edit" {
editbutton.title = "Done" 
}

操作必须按此顺序进行,否则按钮将变为“完成”而不会隐藏,因此在用户第二次按下按钮之前,计算机将继续并隐藏它。

就是这样!!非常感谢你
if editbutton.title == "Edit" {
editbutton.title = "Done" 
}