是否可以更改ios snackbar的背景颜色?

是否可以更改ios snackbar的背景颜色?,ios,swift,snackbar,material-components,Ios,Swift,Snackbar,Material Components,我的应用程序使用了ios材质组件的快捷键。我想把背景颜色改成蓝色,但我不能 那么有可能改变snackbar的背景色吗?你必须破解它。:) 在您的播客中有一个名为的文件 MDCSnackbarMessageView.m 有这样的功能。我已将值更改为蓝色。它将采用十六进制值的颜色代码 - (UIColor *)snackbarBackgroundColor { // return MDCRGBAColor(0x32, 0x32, 0x32, 1.0f); //previous grey col

我的应用程序使用了ios材质组件的快捷键。我想把背景颜色改成蓝色,但我不能

那么有可能改变snackbar的背景色吗?

你必须破解它。:)

在您的播客中有一个名为的文件

MDCSnackbarMessageView.m

有这样的功能。我已将值更改为蓝色。它将采用十六进制值的颜色代码

- (UIColor *)snackbarBackgroundColor {
   // return MDCRGBAColor(0x32, 0x32, 0x32, 1.0f); //previous grey color
    return MDCRGBAColor(0x10, 0x3F, 0xFF, 1.0f);// blue color
}
现在,再次进行清洁和建造。这是输出


你不必破解它:-)

既然您在这个问题中添加了
swift
标记,那么我将用swift代码给出答案

MDCSnackbarMessageView.appearance().snackbarMessageViewBackgroundColor = .green
MDCSnackbarManager.show(MDCSnackbarMessage(text: "Hi there"))

我使用的是MaterialComponents版本68.1。如果您也是,请尝试以下方法:

let message = MDCSnackbarMessage()
message.text = "message"

MDCSnackbarManager.messageTextColor = .white
MDCSnackbarManager.snackbarMessageViewBackgroundColor = .blue
MDCSnackbarManager.show(message)
你可以这样做:

MDCSnackbarManager.default.snackbarMessageViewBackgroundColor = UIColor.blue
我还创建了一个包装器类以简化使用:

import MaterialComponents.MaterialSnackbar

class Snackbar {
    
    static func show(message: String,
                     actionMessage: String? = nil ,
                     actionHandler: MDCSnackbarMessageActionHandler? = nil,
                     messageTextColor: UIColor? = nil,
                     snackbarMessageViewBackgroundColor: UIColor? = nil,
                     buttonTitleColor: UIColor? = nil){
        
        MDCSnackbarManager.default.snackbarMessageViewBackgroundColor = snackbarMessageViewBackgroundColor
        MDCSnackbarManager.default.messageTextColor = messageTextColor
        MDCSnackbarManager.default.setButtonTitleColor(buttonTitleColor ?? UIColor.white, for: .normal)

        let snackbarMessage = MDCSnackbarMessage()
        snackbarMessage.text = message
        if(actionMessage != nil && actionHandler != nil){
            let snackbarMessageAction = MDCSnackbarMessageAction()
            snackbarMessageAction.handler = actionHandler
            snackbarMessageAction.title = actionMessage
            snackbarMessage.action = snackbarMessageAction
        }

        MDCSnackbarManager.default.show(snackbarMessage)
    }
    
 
}
用法:

Snackbar.show(message: "Super message", snackbarMessageViewBackgroundColor: UIColor.blue)

@ozzotto看看我下面的答案@Kumuluzz的答案应该是公认的答案。谢谢。如何更改按钮的颜色?@user3659077:太好了,如果可以,请告诉我!如果您发现解决方案比前面的答案更好,那么请随意将已接受的答案更改为我的:-)