是否可以更改 ios 快餐栏的背景颜色?

Posted

技术标签:

【中文标题】是否可以更改 ios 快餐栏的背景颜色?【英文标题】:Is it possible to change BackgroundColor of snackbar for ios? 【发布时间】:2017-11-10 21:32:09 【问题描述】:

我的应用程序使用了一个名为 material-components-ios 的快餐栏。我想将BackgroundColor 更改为蓝色,但我不能。

那么可以改变snackbar的背景颜色吗?

【问题讨论】:

【参考方案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)

【讨论】:

【参考方案2】:

我正在使用 MaterialComponents 版本 68.1。如果你也是,试试这个:

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

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

【讨论】:

【参考方案3】:

你不必破解它:-)

既然你给这个问题加了swift标签,那我就用Swift代码来回答吧。

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

【讨论】:

@user3659077:太好了,让我知道它是否有效!如果您发现解决方案比上一个答案更好,请随时将接受的答案更改为我的 :-) meta.stackexchange.com/questions/5234/…【参考方案4】:

你必须破解它。 :)

在您的 pod 中有一个名为的文件。

MDCSnackbarMessageView.m

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

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

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

【讨论】:

@ozzotto 看看我的回答 @Kumuluzz 下面的答案应该是公认的答案。 谢谢。如何更改按钮色调?

以上是关于是否可以更改 ios 快餐栏的背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章

更改标签栏的背景颜色

如何在 iOS7 中更改 UISearchBar 的背景颜色

如何更改 Ionic 2 中导航栏的背景颜色?

如何更改android状态栏的背景颜色

更改状态栏的背景颜色

如何更改导航栏的默认背景颜色? [复制]