首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CosmicMind / Material中,我如何开始(显示)小吃栏?

在CosmicMind / Material中,我如何开始(显示)小吃栏?
EN

Stack Overflow用户
提问于 2016-10-05 21:22:48
回答 1查看 781关注 0票数 0

在CosmicMind /资料库中,我如何开始(显示)小吃栏?

我试着准备好snackbarController,然后在用户单击按钮时显示它。

如他们的例子所示:

代码语言:javascript
复制
private var undoButton: FlatButton!

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    prepareSnackbar()
    animateSnackbar()
}

@IBAction func loginBtnTapped(_ sender: AnyObject) {
    sc?.show(vc: UIViewControlle, sender: Any)//doesn't show
    more code... (which works)
}
private func prepareUndoButton() {
    undoButton = FlatButton(title: "Undo", titleColor: Color.yellow.base)
    undoButton.pulseAnimation = .backing
    undoButton.titleLabel?.font = RobotoFont.regular(with: 14)
}

private func prepareSnackbar() {
    guard let sc = snackbarController else {
        return
    }
    sc.snackbar.text = "Reminder saved."
    sc.snackbar.rightViews = [undoButton]

}

private func animateSnackbar() {
    guard let sc = snackbarController else {
        return
    }
    _ = sc.animate(snackbar: .visible, delay: 1)
    _ = sc.animate(snackbar: .hidden, delay: 4)
}

所以我在一个空的项目上试了一下,但是snackbar仍然不起作用。你能指出我做错了什么吗?

代码语言:javascript
复制
 import Foundation
 import UIKit
 import Material

class MainViewController: UIViewController {

private var undoButton: FlatButton!


open override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = Color.red.accent1

    prepareUndoButton()
}

open override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    //prepareSnackbar()
    //animateSnackbar()
}

private func prepareUndoButton() {
    undoButton = FlatButton(title: "Undo", titleColor: Color.yellow.base)
    undoButton.pulseAnimation = .backing
    undoButton.titleLabel?.font = RobotoFont.regular(with: 14)
}

private func prepareSnackbar() {
    guard let sc = snackbarController else {
        return
    }

    sc.snackbar.text = "Reminder saved."
    sc.snackbar.rightViews = [undoButton]
}

private func animateSnackbar() {
    guard let sc = snackbarController else {
        return
    }

    _ = sc.animate(snackbar: .visible, delay: 1)
    _ = sc.animate(snackbar: .hidden, delay: 4)
}


@IBAction func testBtn(_ sender: AnyObject) {
    print("TEST TEST TEST")

    prepareSnackbar()
    animateSnackbar()
}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-05 22:39:37

如果您注意到viewDidAppear函数中有一个animateSnackbar调用,它调用行

代码语言:javascript
复制
_ = sc.animate(snackbar: .visible, delay: 1)
_ = sc.animate(snackbar: .hidden, delay: 4)

您基本上可以在按钮处理程序中使用animateSnackbar函数,如下所示:

代码语言:javascript
复制
@IBAction func loginBtnTapped(_ sender: AnyObject) {
    animateSnackbar()
}

就这样。有两个动画播放,一个显示和一个隐藏小吃栏。设置您希望让它们自动出现和隐藏的延迟。

您可能希望从animateSnackbar方法中删除viewDidAppear调用,就像放在示例中的那样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39883907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档