void ShowNextMessage() { if (MessageBarQueue.Count > 0) { MessageVisible = true; MessageView messageView = MessageBarQueue.Dequeue(); messageView.Frame = new RectangleF(0, -messageView.Height, messageView.Width, messageView.Height); messageView.Hidden = false; messageView.SetNeedsDisplay(); var gest = new UITapGestureRecognizer(MessageTapped); messageView.AddGestureRecognizer(gest); if (messageView == null) { return; } UIView.Animate(DismissAnimationDuration, () => messageView.Frame = new RectangleF(messageView.Frame.X, MessageBarOffset + messageView.Frame.Y + messageView.Height, messageView.Width, messageView.Height) ); //Need a better way of dissmissing the method var dismiss = new Timer(DismissMessage, messageView, TimeSpan.FromSeconds(DisplayDelay), TimeSpan.FromMilliseconds(-1)); } }
void ShowNextMessage() { MessageView 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); if (messageView == null) { return; } 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, TimeSpan.FromSeconds(DisplayDelay), TimeSpan.FromMilliseconds(-1)); } }
void ShowNextMessage(double duration = DisplayDelay) { MessageView messageView = GetNextMessage(); if (messageView != null) { MessageVisible = true; if (ShowAtTheBottom) { initialPosition = MessageWindowView.Bounds.Height + messageView.Height; showPosition = MessageWindowView.Bounds.Height - messageView.Height - messageView.Margin; } else { initialPosition = MessageWindowView.Bounds.Y - messageView.Height; showPosition = MessageWindowView.Bounds.Y; } messageView.Frame = new CGRect(messageView.Margin, initialPosition, messageView.Width, messageView.Height); messageView.Hidden = false; messageView.SetNeedsDisplay(); var gest = new UITapGestureRecognizer(MessageTapped); messageView.AddGestureRecognizer(gest); if (messageView == null) { return; } //messageView.Alpha = 0f; UIView.Animate(AnimationDuration, 0, UIViewAnimationOptions.CurveEaseIn, () => { //messageView.Alpha = 1f; messageView.Frame = new CGRect(messageView.Frame.X, showPosition, messageView.Width, messageView.Height); }, null); //Need a better way of dissmissing the method new Timer(DismissMessage, messageView, TimeSpan.FromSeconds(duration), TimeSpan.FromMilliseconds(-1)); } }