TableViewCell滑动操作中的图像

时间:2018-07-29 15:57:22

标签: ios swift uitableview uiswipeactionsconfiguration

我有一个滑动动作可以“完成”待办事项列表应用程序中的任务。这是我设置的图像:

enter image description here

但是,当滑动单元格时,图像如下所示:

Swiped image

有没有一种方法可以使背景透明/白色,并且图像具有与上图一样的绿色圆圈?

如果没有,是否有办法使绿色背景“包裹”到单元格的紫色,从而没有空格? 谢谢!

3 个答案:

答案 0 :(得分:3)

在第二个图像中,绿色是UIContextualAction的None,白色是backgroundColor

将图像视为模板图像-即忽略其颜色,而是在图像透明的情况下将其绘制为透明,而在图像不透明的情况下使用tintColor将其绘制为不透明。

因此,基本上,您需要颠倒设置:将背景色设置为白色,并将色调颜色更改为图像中显示的深绿色。设置色彩颜色并不容易,但是您可以按照建议here使用外观代理在应用程序委托tintColor中进行设置(尽管这可能会产生其他不良影响):< / p>

didFinishLaunching

答案 1 :(得分:1)

In提出了UIImage的扩展名:

    extension UIImage {
        func colored(in color: UIColor) -> UIImage {
            let renderer = UIGraphicsImageRenderer(size: size)
            return renderer.image { context in
                color.set()
                self.withRenderingMode(.alwaysTemplate).draw(in: CGRect(origin: .zero, size: size))
            }
        }
    }

按以下方式使用时,它将以新颜色返回一个新图标:

        swipAction.image = UIImage(named: "myImage")?.colored(in: .white)

也许这可以帮助某人。

答案 2 :(得分:0)

在带有SF Symbol的iOS 13中,只需使用UIImageRenderingModeAlwaysOriginal即可更改符号颜色。

function getLinkAndTitle(title, link) {
    sessionStorage.setItem("title", title);
    sessionStorage.setItem("link", link);
    location.reload();
}