gpt4 book ai didi

swift - 尝试在 iOS 表格 View 中实现 MGSwipeTableCell

转载 作者:行者123 更新时间:2023-11-30 13:27:08 25 4
gpt4 key购买 nike

我正在尝试在我的 Swift 2、Xcode 7 项目中实现可滑动的表格 View 。

我想使用这个库:

https://github.com/MortimerGoro/MGSwipeTableCell

我只是想找出将其实现到我的项目中的正确方法。

我有一个 UIView,其中有一个 TableView 以及一个自定义 TableViewCell

以下是 GitHub 存储库的实现代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let reuseIdentifier = "programmaticCell"
var cell = self.table.dequeueReusableCellWithIdentifier(reuseIdentifier) as! MGSwipeTableCell!
if cell == nil
{
cell = MGSwipeTableCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: reuseIdentifier)
}

cell.textLabel!.text = "Title"
cell.detailTextLabel!.text = "Detail text"
cell.delegate = self //optional

//configure left buttons
cell.leftButtons = [MGSwipeButton(title: "", icon: UIImage(named:"check.png"), backgroundColor: UIColor.greenColor())
,MGSwipeButton(title: "", icon: UIImage(named:"fav.png"), backgroundColor: UIColor.blueColor())]
cell.leftSwipeSettings.transition = MGSwipeTransition.Rotate3D

//configure right buttons
cell.rightButtons = [MGSwipeButton(title: "Delete", backgroundColor: UIColor.redColor())
,MGSwipeButton(title: "More",backgroundColor: UIColor.lightGrayColor())]
cell.rightSwipeSettings.transition = MGSwipeTransition.Rotate3D

return cell
}

这是我当前项目中的 cellForRowAtIndexPath 函数:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let post = posts[indexPath.row]

if let cell = tableView.dequeueReusableCellWithIdentifier("PostCell") as? PostCell {

cell.request?.cancel()

var img: UIImage?

if let url = post.imageUrl {
img = FeedVCViewController.imageCache.objectForKey(url) as? UIImage
}

cell.configureCell(post, img: img)

return cell
} else {
return PostCell()
}
}

我还需要实现这个回调:

MGSwipeButton(title: "Delete", backgroundColor: UIColor.redColor(), callback: {
(sender: MGSwipeTableCell!) -> Bool in
println("Convenience callback for swipe buttons!")
return true
})

任何人都可以指导我如何做到这一点的正确方向吗?由于我是移动开发新手,我只是想让自己避免很多头痛。

我主要对实现代码中的“cell”声明和“if”语句以及如何将其与我创建的自定义单元组合起来感到困惑。

提前谢谢您!

最佳答案

if let cell = tableView.dequeueReusableCellWithIdentifier("PostCell") 与说的相同

if  tableView.dequeueReusableCellWithIdentifier("PostCell") != nil { 
let cell = tableView.dequeueReusableCellWithIdentifier("PostCell")
}

他们通过声明一个变量并将其设置为等于可选值来执行类似的操作。他们检查可选值是否为零。如果是这样,它们会初始化一个新对象并将单元格设置为等于该对象,以便它们可以安全地展开。

如果 PostCell 是 MGSwipeTableCell 的子类,您可以像它们一样添加 leftButtons 和 rightButtons。例如

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let post = posts[indexPath.row]

if let cell = tableView.dequeueReusableCellWithIdentifier("PostCell") as? PostCell {
cell.request?.cancel()

var img: UIImage?

if let url = post.imageUrl {
img = FeedVCViewController.imageCache.objectForKey(url) as? UIImage
}

cell.configureCell(post, img: img)



cell.rightButtons = [MGSwipeButton(title: "Delete", backgroundColor: UIColor.redColor(), callback: {
(sender: MGSwipeTableCell!) -> Bool in
print("Convenience callback for delete button!")
return true
})
,MGSwipeButton(title: "More",backgroundColor: UIColor.lightGrayColor(),callback: {
(sender: MGSwipeTableCell!) -> Bool in
print("Convenience callback for more button!")
return true
})]

return cell
} else {
return PostCell()
}
}

关于swift - 尝试在 iOS 表格 View 中实现 MGSwipeTableCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37040519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com