【发布时间】:2020-10-26 05:06:54
【问题描述】:
我正在使用下面的代码在我的CustomTableView 蓝色(具体为 DodgerBlue)的 TableSections 中制作文本,并将文本设为粗体。
assembly: ExportRenderer(typeof(CustomTableView), typeof(CustomTableViewRenderer))]
namespace MyApp.iOS.CustomRenderers
{
public class CustomTableViewRenderer : TableViewRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<TableView> e)
{
base.OnElementChanged(e);
if (Control == null)
return;
var tableView = Control as UITableView;
var customTableView = Element as CustomTableView;
tableView.WeakDelegate = new CustomHeaderTableModelRenderer(customTableView);
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
}
private class CustomHeaderTableModelRenderer : UnEvenTableViewModelRenderer
{
private readonly CustomTableView _customTableView;
public CustomHeaderTableModelRenderer(TableView model) : base(model)
{
_customTableView = model as CustomTableView;
}
public override UIView GetViewForHeader(UITableView tableView, nint section)
{
return new UILabel()
{
Text = TitleForHeader(tableView, section),
TextColor = UIColor.FromRGB(30, 114, 255), //Issue is here
Font = UIFont.BoldSystemFontOfSize(new nfloat(22.0)),
};
}
}
}
}
我遇到的问题是,我不想为带有 RGB 值的标题中的文本设置 TextColor 并强制它始终为 DodgerBlue,我想从每个的 TextColor 属性中获取颜色TableSection 并改用它(这将允许我在其他地方重用这个CustomTableView,因为我可以随意更改颜色)。任何关于我如何做到这一点的想法将不胜感激
【问题讨论】:
标签: c# xamarin xamarin.forms xamarin.ios custom-renderer