我已经接管了应用程序的开发,我正在寻找一个iOS标签自定义渲染器。我有下面的代码。
我想知道的是,当textColor和textProperty被更改时,是否有人能够看到调用SetTextFontStyle方法的原因。
还有一种方法可以使用这种自定义呈现多种字体类型吗?我希望能够在可能的情况下将字体类型传递给渲染器。
public class LabelBodyCustomRenderer : LabelRenderer
{
public LabelBodyCustomRenderer()
{
}
protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
{
base.OnElementChanged(e);
if (Control != null)
Control.Font = UIFont.GetPreferredFontForTextStyle(UIFontTextStyle.Body);
}
protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName == Label.TextColorProperty.PropertyName)
SetFontTextStyle();
else if (e.PropertyName == Label.FontProperty.PropertyName)
SetFontTextStyle();
else if (e.PropertyName == Label.TextProperty.PropertyName || e.PropertyName == Label.FormattedTextProperty.PropertyName)
SetFontTextStyle();
}
void SetFontTextStyle()
{
Control.Font = UIFont.GetPreferredFontForTextStyle(UIFontTextStyle.Body);
}
}