Xamarin窗体 – 如何创build自定义渲染给TableSection默认的iOS页脚?
我想将默认的iOS脚本添加到Xamarin Forms中tableview中的table部分。 我怎么能这样做? 我假设一个客户渲染器,但我只是阅读,这可以做Tableview?
为了显示一个例子,当我在静态单元格中input页脚文本时,以下图像来自Xcode storyboard。
自定义渲染器是正确的,但您将不得不为整个TableView
使用自定义渲染器。 从那里,你将需要重写TableViewModelRenderer
,然后重写该ModelRenderer
方法。 以下是可能帮助您开始的事情:
public class FooterTableViewRenderer : TableViewRenderer { protected override void OnElementChanged(ElementChangedEventArgs<TableView> e) { base.OnElementChanged(e); if (Control == null) return; var tableView = Control as UITableView; var formsTableView = Element as TableView; tableView.WeakDelegate = new CustomFooterTableViewModelRenderer (formsTableView); } private class CustomFooterTableViewModelRenderer : TableViewModelRenderer { public CustomFooterTableViewModelRenderer(TableView model) : base(model) { } public override UIView GetViewForFooter(UITableView tableView, nint section) { return new UILabel() { Text = TitleForFooter(tableView, section), // or use some other text here TextAlignment = UITextAlignment.Center }; } } }
正如我在下面的评论中提到的,你可以替代你的TableViewModelRenderer
其他方法:
public override nfloat GetHeightForFooter(UITableView tableView, nint section) { return 10; } public override string TitleForFooter(UITableView tableView, nint section) { return "This is the title for this given section"; }