【发布时间】:2017-11-10 21:32:09
【问题描述】:
我的应用程序使用了一个名为 material-components-ios 的快餐栏。我想将BackgroundColor 更改为蓝色,但我不能。
那么可以改变snackbar的背景颜色吗?
【问题讨论】:
标签: ios swift snackbar material-components
我的应用程序使用了一个名为 material-components-ios 的快餐栏。我想将BackgroundColor 更改为蓝色,但我不能。
那么可以改变snackbar的背景颜色吗?
【问题讨论】:
标签: ios swift snackbar material-components
你可以这样做:
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)
【讨论】:
我正在使用 MaterialComponents 版本 68.1。如果你也是,试试这个:
let message = MDCSnackbarMessage()
message.text = "message"
MDCSnackbarManager.messageTextColor = .white
MDCSnackbarManager.snackbarMessageViewBackgroundColor = .blue
MDCSnackbarManager.show(message)
【讨论】:
你不必破解它:-)
既然你给这个问题加了swift标签,那我就用Swift代码来回答吧。
MDCSnackbarMessageView.appearance().snackbarMessageViewBackgroundColor = .green
MDCSnackbarManager.show(MDCSnackbarMessage(text: "Hi there"))
【讨论】:
【讨论】: