BastiaanJansen / toast-swift

Customizable Swift Toast view built with UIKit. 🍞
MIT License
467 stars 77 forks source link

I have a problem. A really, really, big problem. #34

Closed eatwhales closed 1 year ago

eatwhales commented 1 year ago

After the first popover pops up, click the button to pop up the second popover and repeat to N pop-ups. It's going to add up, the shadow looks heavy, and what I need is the first one to close when the second one pops up, so how do I do that?

BastiaanJansen commented 1 year ago

Stacking or queuing toasts are currently not supported. You should close your toast before showing another one.

PR's are of course welcome.

eatwhales commented 1 year ago

OK, thank you.

Nikoloutsos commented 1 year ago

Hello @eatwhales 👋 . that sounds like a good idea. I am thinking that we can build something similar to https://github.com/Daltron/NotificationBanner/blob/master/NotificationBanner/Classes/NotificationBannerQueue.swift

League2EB commented 9 months ago

This issue has still not been implemented. I would like to ask if anyone has any ideas? @eatwhales @BastiaanJansen

BastiaanJansen commented 9 months ago

Hi @League2EB,

Queueing is now supported. When you are not using queues you should first hide the currently visible toast before showing the next one.

League2EB commented 8 months ago

Hi @League2EB,

Queueing is now supported. When you are not using queues you should first hide the currently visible toast before showing the next one.

@BastiaanJansen

I don't plan to use Queueing, but I didn't see in your document how to hide the currently displayed Toast. Can you give me some hints? Thank you.

This is my method for calling Toast, but I don't know how to close the "previous" Toast that is already being displayed.

    func showToastViewWithArtsitName(name: String, actionType: FVToastActionType) {
        let time = FOInstanceConfig.sharedInstance.fetchNotificationTime(key: "minutes") / 60
        let appleToastView = AppleToastView(
            child: IBToastView(name,
                               "\(time)", actionType: actionType),
            config: ToastViewConfiguration(
                minHeight: ADH(58),
                minWidth: ADW(150),
                darkBackgroundColor: .white,
                lightBackgroundColor: .white
            )
        )

        let toast = Toast.custom(view: appleToastView)
        toast.show()
    }
BastiaanJansen commented 8 months ago

@League2EB , you can close a toast by calling the close method like this:

let toast = Toast.custom(view: appleToastView)
toast.show()

... somewhere later in your code

toast.close()