SegmentedControl icon indicating copy to clipboard operation
SegmentedControl copied to clipboard

SegmentedControlRenderer will never work !

Open ColeXm opened this issue 6 years ago • 2 comments
trafficstars

I want to change the font size , so i use SegmentedControlRenderer , my code as below

[assembly: ExportRenderer(typeof(SegmentedControl.FormsPlugin.Abstractions.SegmentedControl), typeof(MySegmentedControlRenderer))]
namespace FormsApp.iOS
{
    class MySegmentedControlRenderer : SegmentedControlRenderer
    {
        protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            base.OnElementPropertyChanged(sender, e);
        }

        protected override void OnElementChanged(ElementChangedEventArgs<SegmentedControl.FormsPlugin.Abstractions.SegmentedControl> e)
        {
            base.OnElementChanged(e);

            if(Control !=null){
                var myFont = UIFont.SystemFontOfSize(40f);
                Control.SetTitleTextAttributes(new UITextAttributes() { Font = myFont }, UIControlState.Normal);
            }          
        }
    }
}

I can see the control shows on the screen , but OnElementChanged is never triggered.

Please correct me if my code has mistaken.

Thanks.

ColeXm avatar Nov 23 '18 07:11 ColeXm

I will be releasing a new version soon.

alexrainman avatar Nov 23 '18 20:11 alexrainman

You got it wrong. In order for this to work, you need to derive from SegmentedControl first and create a renderer for each platform. Make sure that the View you're going to export is your custom control, i.e:

ExportRenderer(typeof(Your_Custom_Control_Here), typeof(MySegmentedControlRenderer))]

And instead of using the SegmentedControl in your XAML, you also use your Your_Custom_Control_Here

mr5z avatar Jan 18 '19 07:01 mr5z