适用于iOS的MvvmCross汉堡菜单
我使用的是https://www.marcbruins.nl/xamarin-ios-hamburger-menu-mvvmcross/ ,它适用于纵向:
但在风景方向我没有填充宽度:
菜单类:
[MvxPanelPresentation (MvxPanelEnum.Left, MvxPanelHintType.ResetRoot, false)] public partial class MenuView : MvxViewController<MenuViewModel> { public override void ViewDidLoad () { base.ViewDidLoad (); EdgesForExtendedLayout = UIRectEdge.Right; MenuTableView.Source = new MenuTableViewSource(ViewModel.MenuItems); var separator = new UIView(new CGRect(0, 0, this.View.Frame.Size.Width, 0.8)); separator.BackgroundColor = UIColor.FromRGB(210, 210, 210); MenuTableView.TableHeaderView = separator; } }
表来源:
public class MenuTableViewSource : UITableViewSource { List<MenuModel> TableItems; string CellIdentifier = "MenuTableViewCell"; public MenuTableViewSource (List<MenuModel> menuItems) { TableItems = menuItems; } public override nint RowsInSection (UITableView tableview, nint section) { return TableItems.Count; } public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath) { MenuTableViewCell cell = tableView.DequeueReusableCell (CellIdentifier) as MenuTableViewCell; MenuModel item = TableItems[indexPath.Row]; if (cell == null) cell = MenuTableViewCell.Create (); cell.BackgroundColor = UIColor.White; cell.SeparatorInset = UIEdgeInsets.Zero; cell.LayoutMargins = UIEdgeInsets.Zero; cell.MenuItemTextLabel.Text = item.Title; cell.AccessoryView = new UIImageView(image: new UIImage("chevron-right.png")); return cell; } public override void RowSelected(UITableView tableView, NSIndexPath indexPath) { MenuModel item = TableItems[indexPath.Row]; item.Navigate.Execute(null); Mvx.Resolve<IMvxSideMenu>().Close(); } public override nfloat GetHeightForRow (UITableView tableView, NSIndexPath indexPath) { return 60f; } }
此外,我试图增加视图的宽度 – 不工作。
在iPad上的错误。
build议,请如何解决它。