gpt4 book ai didi

ios - TableView :editActionsForRowAt: on right-swipe?

转载 作者:行者123 更新时间:2023-11-29 05:28:54 32 4
gpt4 key购买 nike

因为我使用tableView:editActionsForRowAt:在iOS应用程序中提供一些有用的功能。

func tableView(_ tableView: UITableView,
editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
print(#function)
.... useful code .....
}

我发现其他一些与上面类似的 API 会很有用,但在向右滑动时触发,而不是像 tableView:editActionsForRowAt: 那样向左滑动。说一些类似的话:

func tableView(_ tableView: UITableView,
editMoreActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
print(#function)
.... useful code .....
}

浏览网络我发现了 UITableViewDelegate 协议(protocol)的这两个方法:

tableView:leadingSwipeActionsConfigurationForRowAt
tableView:trailingSwipeActionsConfigurationForRowAt

经过一些基本的实验后,我认为使用 tableView:leadingSwipeActionsConfigurationForRowAt 可以得到我想要的东西,因此可以在单元格的右侧滑动时为用户提供更多功能。但似乎这种方法并没有给予太多的自由。例如,这里是我的代码(深受我在互联网上找到的一些示例的启发):

func tableView(_ tableView: UITableView,
leadingSwipeActionsConfigurationForRowAt
indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let modifyAction = UIContextualAction(style: .normal, title: nil, handler: {
(ac:UIContextualAction, view:UIView, success:(Bool) -> Void) in
print("Update action ...")
success(true)
})

modifyAction.image = UIImage(named: "MyNiceIcon")!.withColor(color: .black)
modifyAction.backgroundColor = .clear

return UISwipeActionsConfiguration(actions: [modifyAction])
}

即使存在这些行:

modifyAction.image = UIImage(named: "MyNiceIcon")!.withColor(color: .black)
modifyAction.backgroundColor = .clear

MyNiceIcon 保持白色,按钮的背景为灰色。

我错过了什么吗?或者所用图像的颜色只能是白色吗?背景色从不透明?

最佳答案

要设置原始图像,您可以创建 UIImage 的自定义类并重写方法 withRenderingMode,如下所示

class OriginalImageRender: UIImage {
override func withRenderingMode(_ renderingMode: UIImage.RenderingMode) -> UIImage {
return self
}
}

使用:

if let cgImageX =  UIImage(named: "MyNiceIcon")?.cgImage {
modifyAction.image = OriginalImageRender(cgImage: cgImageX, scale: UIScreen.main.nativeScale, orientation: .up)
}

上面的代码将显示添加到图像资源中的原始图像。

关于ios - TableView :editActionsForRowAt: on right-swipe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57864748/

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