是否可以更改ios的snackbar的BackgroundColor?

时间:2017-06-09 01:48:49

标签: ios swift snackbar material-components

我的应用程序使用了材料组件ios的零食店。我想将BackgroundColor更改为蓝色,但我不能。

那么可以改变小吃店的背景颜色吗?

4 个答案:

答案 0 :(得分:19)

你不必破解它: - )

由于您已在此问题中添加了MDCSnackbarMessageView.appearance().snackbarMessageViewBackgroundColor = .green MDCSnackbarManager.show(MDCSnackbarMessage(text: "Hi there")) 标记,因此我将使用Swift代码给出答案。

add_filter('woocommerce_checkout_fields','your_fun_name');

function your_fun_name( $needs_address ) {
        if($payment_method == 'self-collection') {
            $needs_address = false;
        }
        return $needs_address;
}

答案 1 :(得分:3)

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

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

MDCSnackbarManager.messageTextColor = .white
MDCSnackbarManager.snackbarMessageViewBackgroundColor = .blue
MDCSnackbarManager.show(message)

答案 2 :(得分:1)

您可以这样做:

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)

答案 3 :(得分:-2)

你必须破解它。 :)

在您的pod中有一个名为。

的文件
  

MDCSnackbarMessageView.m

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

- (UIColor *)snackbarBackgroundColor {
   // return MDCRGBAColor(0x32, 0x32, 0x32, 1.0f); //previous grey color
    return MDCRGBAColor(0x10, 0x3F, 0xFF, 1.0f);// blue color
}

现在再次执行清理并构建。这是输出。

enter image description here