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