public void RemoveItem(SatelliteMenuButtonItem menuItem)
        {
            var index      = _menuItems.IndexOf(menuItem);
            var buttonItem = _buttonItems[index];

            // ISSUE: reference to a compiler-generated method
            buttonItem.RemoveFromSuperview();
            buttonItem.TouchUpInside -= HandleTouchUpInsideButton;
            buttonItem.Dispose();
            menuItem.ImageChanged = null;
            _buttonItems.RemoveAt(index);
            _menuItems.RemoveAt(index);
        }
        public void AddItem(SatelliteMenuButtonItem menuItem)
        {
            _menuItems.Add(menuItem);
            var button =
                new UIButton(new CGRect(0, 0, menuItem.ItemImage.CGImage.Width / UIScreen.MainScreen.Scale,
                                        menuItem.ItemImage.CGImage.Height / UIScreen.MainScreen.Scale));

            button.SetBackgroundImage(menuItem.ItemImage, UIControlState.Normal);
            menuItem.ImageChanged = delegate
            {
                button.SetBackgroundImage(menuItem.ItemImage, UIControlState.Normal);
            };

            button.TouchUpInside += HandleTouchUpInsideButton;
            _buttonItems.Add(button);
            _parentView?.AddSubview(button);
            button.Center = Center;
        }