Ios 默认UITableViewCell状态
我创建了一个自定义UITableViewRowAction。因此,如果我在UITableViewCell上向左滑动,会出现一个自定义按钮。无自定义按钮是例如删除按钮。如果我按下这个自定义按钮,会出现UIView,但按下的按钮仍然显示。我希望在按下UITableViewCell后看到没有此按钮的UITableViewCell。你们中有人知道如何在Swift中这样做并且愿意帮助我吗?谢谢你的回答 屏幕截图:我在自己的应用程序中实现这些操作。看一看,太棒了 您可以这样使用此类:Ios 默认UITableViewCell状态,ios,uitableview,swift,xcode6,Ios,Uitableview,Swift,Xcode6,我创建了一个自定义UITableViewRowAction。因此,如果我在UITableViewCell上向左滑动,会出现一个自定义按钮。无自定义按钮是例如删除按钮。如果我按下这个自定义按钮,会出现UIView,但按下的按钮仍然显示。我希望在按下UITableViewCell后看到没有此按钮的UITableViewCell。你们中有人知道如何在Swift中这样做并且愿意帮助我吗?谢谢你的回答 屏幕截图:我在自己的应用程序中实现这些操作。看一看,太棒了 您可以这样使用此类: import UIKi
import UIKit
class MySWCell: SWTableViewCell {
}
一,。导入SWTableViewCell类
按照上面的链接或在github上搜索SWTableViewCell。下载zip或使用可可豆,如果你熟悉的话
打开解压后的目录,找到PodsFile目录。将此目录的内容拖到项目中。这样做会导致Xcode请求创建桥接头。同意,然后添加
#import "SWTableViewCell.h"
到该桥接头文件。如果编译,您将得到一些解析问题错误:预期类型。要解决这些问题,只需添加
#import <UIKit/UIKit.h>
如果你正在使用故事板,你可以在这个类的tableview中创建你的单元格,连接任何插座/动作等。所有你需要做的事情都可以让单元格像你需要的那样
三,。在TableView中使用子类
对于这个例子,我刚从Master-Detail-base项目开始。您可以更改cellForRowAtIndexPath方法以使用新的自定义单元格:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as MySWCell
let object = objects[indexPath.row] as NSDate
cell.textLabel!.text = object.description
return cell
}
虽然这很好,但您可能希望添加右/左实用程序按钮,这也是我们执行所有这些操作的原因:
四,。添加实用程序按钮
您可以在cellForRowAtIndexPath中执行此操作,但更愿意将其放在单独的函数中:
func getRightUtilityButtonsToCell()-> NSMutableArray{
var utilityButtons: NSMutableArray = NSMutableArray()
utilityButtons.sw_addUtilityButtonWithColor(UIColor.redColor(), title: NSLocalizedString("Delete", comment: ""))
utilityButtons.sw_addUtilityButtonWithColor(UIColor.blueColor(), title: NSLocalizedString("Email", comment: ""))
return utilityButtons
}
func swipeableTableViewCell(cell: SWTableViewCell!, didTriggerRightUtilityButtonWithIndex index: Int) {
if index == 0 {
println("delete button")
}else {
println("print button")
}
}
现在在CellForRowatineXpath中使用此方法:
如果要在单元格上向左滑动,则有两个按钮:
但是,这些按钮的作用不大。我们需要服从代表
五,。按一下按钮
首先,告诉单元格您是其委托人。同样,在cellForRowAtIndexPath中添加以下行:
cell.delegate = self;
然后将类定义调整为:
class MasterViewController: UITableViewController, SWTableViewCellDelegate
MasterViewController将替换为处理tableview数据源/委托的类的名称
现在实现didTriggerRightUtilityButtonWithIndex函数:
func getRightUtilityButtonsToCell()-> NSMutableArray{
var utilityButtons: NSMutableArray = NSMutableArray()
utilityButtons.sw_addUtilityButtonWithColor(UIColor.redColor(), title: NSLocalizedString("Delete", comment: ""))
utilityButtons.sw_addUtilityButtonWithColor(UIColor.blueColor(), title: NSLocalizedString("Email", comment: ""))
return utilityButtons
}
func swipeableTableViewCell(cell: SWTableViewCell!, didTriggerRightUtilityButtonWithIndex index: Int) {
if index == 0 {
println("delete button")
}else {
println("print button")
}
}
现在你可以走了!您还可以告诉单元格执行一些很酷的操作,例如在使用didTriggerRightUtilityButtonWithIndex方法中的hideUtilityButtonsAnimated方法选择按钮后隐藏按钮:
当tableview滚动时,此函数将隐藏单元格:
func swipeableTableViewCellShouldHideUtilityButtonsOnSwipe(cell: SWTableViewCell!) -> Bool {
return true
}
祝你玩得开心,这是一套很棒的课程 我在自己的应用程序中实现这些操作。看一看,太棒了
您可以这样使用此类:
import UIKit
class MySWCell: SWTableViewCell {
}
一,。导入SWTableViewCell类
按照上面的链接或在github上搜索SWTableViewCell。下载zip或使用可可豆,如果你熟悉的话
打开解压后的目录,找到PodsFile目录。将此目录的内容拖到项目中。这样做会导致Xcode请求创建桥接头。同意,然后添加
#import "SWTableViewCell.h"
到该桥接头文件。如果编译,您将得到一些解析问题错误:预期类型。要解决这些问题,只需添加
#import <UIKit/UIKit.h>
如果你正在使用故事板,你可以在这个类的tableview中创建你的单元格,连接任何插座/动作等。所有你需要做的事情都可以让单元格像你需要的那样
三,。在TableView中使用子类
对于这个例子,我刚从Master-Detail-base项目开始。您可以更改cellForRowAtIndexPath方法以使用新的自定义单元格:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as MySWCell
let object = objects[indexPath.row] as NSDate
cell.textLabel!.text = object.description
return cell
}
虽然这很好,但您可能希望添加右/左实用程序按钮,这也是我们执行所有这些操作的原因:
四,。添加实用程序按钮
您可以在cellForRowAtIndexPath中执行此操作,但更愿意将其放在单独的函数中:
func getRightUtilityButtonsToCell()-> NSMutableArray{
var utilityButtons: NSMutableArray = NSMutableArray()
utilityButtons.sw_addUtilityButtonWithColor(UIColor.redColor(), title: NSLocalizedString("Delete", comment: ""))
utilityButtons.sw_addUtilityButtonWithColor(UIColor.blueColor(), title: NSLocalizedString("Email", comment: ""))
return utilityButtons
}
func swipeableTableViewCell(cell: SWTableViewCell!, didTriggerRightUtilityButtonWithIndex index: Int) {
if index == 0 {
println("delete button")
}else {
println("print button")
}
}
现在在CellForRowatineXpath中使用此方法:
如果要在单元格上向左滑动,则有两个按钮:
但是,这些按钮的作用不大。我们需要服从代表
五,。按一下按钮
首先,告诉单元格您是其委托人。同样,在cellForRowAtIndexPath中添加以下行:
cell.delegate = self;
然后将类定义调整为:
class MasterViewController: UITableViewController, SWTableViewCellDelegate
MasterViewController将替换为处理tableview数据源/委托的类的名称
现在实现didTriggerRightUtilityButtonWithIndex函数:
func getRightUtilityButtonsToCell()-> NSMutableArray{
var utilityButtons: NSMutableArray = NSMutableArray()
utilityButtons.sw_addUtilityButtonWithColor(UIColor.redColor(), title: NSLocalizedString("Delete", comment: ""))
utilityButtons.sw_addUtilityButtonWithColor(UIColor.blueColor(), title: NSLocalizedString("Email", comment: ""))
return utilityButtons
}
func swipeableTableViewCell(cell: SWTableViewCell!, didTriggerRightUtilityButtonWithIndex index: Int) {
if index == 0 {
println("delete button")
}else {
println("print button")
}
}
现在你可以走了!您还可以告诉单元格执行一些很酷的操作,例如在使用didTriggerRightUtilityButtonWithIndex方法中的hideUtilityButtonsAnimated方法选择按钮后隐藏按钮:
当tableview滚动时,此函数将隐藏单元格:
func swipeableTableViewCellShouldHideUtilityButtonsOnSwipe(cell: SWTableViewCell!) -> Bool {
return true
}
祝你玩得开心,这是一个很棒的游戏
t类 你的问题很难理解。重写,添加一些代码,也许是截图。e、 g.不确定你所说的按下的按钮总是显示OK是什么意思。我用截图更新了我的问题。希望有帮助。你的问题很难理解。重写,添加一些代码,也许是截图。e、 g.不确定你所说的按下的按钮总是显示OK是什么意思。我用截图更新了我的问题。希望它有帮助。但它是用Objective-C编写的。只需将它放在桥接标题中,您就可以在swift中与库交互。我如何确定按钮是否已按下?实现委托方法-voidswipeableTableViewCell:SWTableViewCell*cell didTriggerRightUtilityButtonWithIndex:NSIntegerindex;虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能会变得无效。但它是用Objective-C编写的。只需将其放在桥接标题中,您就可以在swift中与库进行交互。我如何确定按钮是否已按下?实现委托方法-voidswipeableTableViewCell:SWTableViewCell*cell索引中的DidTriggerRightUtility按钮:NSIntegerindex;虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效。