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"
}