示例#1
0
        private void ShowNextMessage()
        {
            ToastView messageView = GetNextMessage();

            if (messageView != null)
            {
                MessageVisible = true;

                if (ShowAtTheBottom)
                {
                    initialPosition = MessageWindowView.Bounds.Height + messageView.Height;
                    showPosition    = MessageWindowView.Bounds.Height - messageView.Height;
                }
                else
                {
                    initialPosition = MessageWindowView.Bounds.Y - messageView.Height;
                    showPosition    = MessageWindowView.Bounds.Y + MessageBarOffset;
                }

                messageView.Frame  = new CGRect(0, initialPosition, messageView.Width, messageView.Height);
                messageView.Hidden = false;
                messageView.SetNeedsDisplay();

                var gest = new UITapGestureRecognizer(MessageTapped);
                messageView.AddGestureRecognizer(gest);

                UIView.Animate(
                    DismissAnimationDuration,
                    () => messageView.Frame = new CGRect(
                        messageView.Frame.X,
                        showPosition,
                        messageView.Width,
                        messageView.Height));

                // Need a better way of dissmissing the method
                var dismiss = new Timer(
                    DismissMessage,
                    messageView,
                    messageView.Duration,
                    TimeSpan.FromMilliseconds(-1));
            }
        }