Beispiel #1
0
        void DismissMessage(MessageView messageView)
        {
            if (messageView != null && !messageView.Hit)
            {
                messageView.Hit = true;
                UIView.Animate(DismissAnimationDuration,
                               delegate {
                    messageView.Frame = new RectangleF(
                        messageView.Frame.X,
                        -(messageView.Frame.Height - MessageBarOffset),
                        messageView.Frame.Width, messageView.Frame.Height);
                },
                               delegate {
                    MessageVisible = false;
                    messageView.RemoveFromSuperview();

                    var action = messageView.OnDismiss;
                    if (action != null)
                    {
                        action();
                    }

                    if (MessageBarQueue.Count > 0)
                    {
                        ShowNextMessage();
                    }
                }
                               );
            }
        }
        async void DismissMessage(MessageView messageView, bool clicked)
        {
            if (messageView != null && !messageView.Hit)
            {
                messageView.Hit = true;
                UIView.Animate(AnimationDuration + .1, 0, UIViewAnimationOptions.CurveEaseOut, () =>
                {
                    //messageView.Alpha = 0f;
                    messageView.Frame = new CGRect(messageView.Frame.X, initialPosition, messageView.Frame.Width, messageView.Frame.Height);
                }, () =>
                {
                    MessageVisible = false;
                    messageView.RemoveFromSuperview();

                    var action = messageView.OnDismiss;
                    if (action != null)
                    {
                        action(clicked);
                    }

                    if (MessageBarQueue.Count > 0)
                    {
                        ShowNextMessage();
                    }
                    else
                    {
                        lastMessage = null;
                    }
                });
            }
        }
        void DismissMessage(MessageView messageView)
        {
            if (messageView != null && !messageView.Hit)
            {
                messageView.Hit = true;
                UIView.Animate(DismissAnimationDuration,
                               delegate {
                    messageView.Frame = new CGRect(
                        messageView.Frame.X,
                        initialPosition,
                        messageView.Frame.Width, messageView.Frame.Height);
                },
                               delegate {
                    MessageVisible = false;
                    messageView.RemoveFromSuperview();

                    messageView.OnDismiss?.Invoke();

                    if (MessageBarQueue.Count > 0)
                    {
                        ShowNextMessage();
                    }
                    else
                    {
                        lastMessage = null;
                    }
                }
                               );
            }
        }
        /// <summary>
        /// Dismisses the message.
        /// </summary>
        /// <param name="messageView">
        /// The message view.
        /// </param>
        /// <param name="dismissedByTap">
        /// if set to <c>true</c> [dismissed by tap].
        /// </param>
        private void DismissMessage(MessageView messageView, bool dismissedByTap)
        {
            if (messageView != null && !messageView.Hit)
            {
                messageView.Hit = true;
                UIView.Animate(
                    DismissAnimationDuration,
                    () => {
                    messageView.Frame = new CGRect(
                        messageView.Frame.X,
                        this.initialPosition,
                        messageView.Frame.Width,
                        messageView.Frame.Height);
                },
                    () => {
                    this.MessageVisible = false;
                    messageView.RemoveFromSuperview();

                    InvokeDismissEvent(messageView, dismissedByTap);

                    if (this.MessageBarQueue.Count > 0)
                    {
                        this.ShowNextMessage();
                    }
                    else
                    {
                        this.lastMessage = null;
                    }
                });
            }
        }
        /// <summary>
        ///     Hides all currently-displayed messages, and discards the Message queue.
        /// </summary>
        public void HideAll()
        {
            var subviews = this.MessageWindowView.Subviews;

            foreach (UIView subview in subviews)
            {
                var view = subview as MessageView;
                if (view != null)
                {
                    MessageView currentMessageView = view;
                    currentMessageView.RemoveFromSuperview();
                }
            }

            this.MessageVisible = false;
            this.MessageBarQueue.Clear();
            CancelPreviousPerformRequest(this);
        }
        /// <summary>
        /// Hides all messages
        /// </summary>
        public void HideAll()
        {
            MessageView currentMessageView = null;
            var         subviews           = UIApplication.SharedApplication.KeyWindow.Subviews;

            foreach (UIView subview in subviews)
            {
                var view = subview as MessageView;
                if (view != null)
                {
                    currentMessageView = view;
                    currentMessageView.RemoveFromSuperview();
                }
            }

            MessageVisible = false;
            MessageBarQueue.Clear();
            CancelPreviousPerformRequest(this);
        }
		void DismissMessage (MessageView messageView)
		{
			if (messageView != null && !messageView.Hit) {

				messageView.Hit = true;
				UIView.Animate (DismissAnimationDuration,
					delegate {
						messageView.Frame = new CGRect (
							messageView.Frame.X,
							initialPosition,
							messageView.Frame.Width, messageView.Frame.Height);
					},
					delegate {
						MessageVisible = false;
						messageView.RemoveFromSuperview ();

						messageView.OnDismiss?.Invoke();

						if (MessageBarQueue.Count > 0) {
							ShowNextMessage ();
						}
                        else {
							lastMessage = null;
						}
					}
				);
			}
		}
		void DismissMessage (MessageView messageView)
		{
			if (messageView != null && !messageView.Hit) {

				messageView.Hit = true;
				UIView.Animate (DismissAnimationDuration, 
					delegate {
						messageView.Frame = new RectangleF (
							messageView.Frame.X, 
							- (messageView.Frame.Height - MessageBarOffset), 
							messageView.Frame.Width, messageView.Frame.Height);
					}, 
					delegate {
						MessageVisible = false;
						messageView.RemoveFromSuperview ();

						var action = messageView.OnDismiss;
						if (action != null) {
							action ();
						}

						if (MessageBarQueue.Count > 0) {
							ShowNextMessage ();
						}
					}
				);
			}
		}
Beispiel #9
0
		async void DismissMessage(MessageView messageView, bool clicked)
		{
			if(messageView != null && !messageView.Hit)
			{
				messageView.Hit = true;
				UIView.Animate(AnimationDuration + .1, 0, UIViewAnimationOptions.CurveEaseOut, () =>
				{
					//messageView.Alpha = 0f;
					messageView.Frame = new CGRect(messageView.Frame.X, initialPosition, messageView.Frame.Width, messageView.Frame.Height);
				}, () =>
				{
					MessageVisible = false;
					messageView.RemoveFromSuperview();

					var action = messageView.OnDismiss;
					if(action != null)
					{
						action(clicked);
					}

					if(MessageBarQueue.Count > 0)
					{
						ShowNextMessage();
					}
					else
					{
						lastMessage = null;
					}
				});
			}
		}
        /// <summary>
        /// Dismisses the message.
        /// </summary>
        /// <param name="messageView">
        /// The message view.
        /// </param>
        /// <param name="dismissedByTap">
        /// if set to <c>true</c> [dismissed by tap].
        /// </param>
        private void DismissMessage(MessageView messageView, bool dismissedByTap)
        {
            if (messageView != null && !messageView.Hit)
            {
                messageView.Hit = true;
                UIView.Animate(
                    DismissAnimationDuration, 
                    () => {
                        messageView.Frame = new CGRect(
                            messageView.Frame.X, 
                            this.initialPosition, 
                            messageView.Frame.Width, 
                            messageView.Frame.Height);
                    }, 
                    () => {
                        this.MessageVisible = false;
                        messageView.RemoveFromSuperview();

                        InvokeDismissEvent(messageView, dismissedByTap);

                        if (this.MessageBarQueue.Count > 0)
                        {
                            this.ShowNextMessage();
                        }
                        else
                        {
                            this.lastMessage = null;
                        }
                    });
            }
        }