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)); } }