Xamarin大学有以下代码。
using System.ComponentModel;
using XFDraw;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
using XFDraw.iOS;
[assembly: ExportRenderer(typeof(SketchView), typeof(SketchViewRenderer))]
namespace XFDraw.iOS
{
class SketchViewRenderer : ViewRenderer<SketchView, PaintView>
{
protected override void OnElementChanged(ElementChangedEventArgs<SketchView> e)
{
base.OnElementChanged(e);
if (Control == null)
{
var paintView = new PaintView();
paintView.SetInkColor(this.Element.InkColor.ToUIColor());
SetNativeControl(paintView);
}
// move the base call to here??
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName == SketchView.InkColorProperty.PropertyName)
{
Control.SetInkColor(Element.InkColor.ToUIColor());
}
// move the base call to here??
}
}
}
我怀疑如果我想创建一个具有可覆盖平台细节的可重用控件,我需要将基本调用移动到每个方法中的最后一个操作。
答案 0 :(得分:2)
您通常应首先调用它,这个想法是您希望您的更改覆盖基础正在执行的任何操作。