xcode - Xamarin.iOS 我可以有一个类,一些按钮可以继承,所以它们看起来一样吗?

我对 Xamarin 很陌生,我目前正在开发一个 Xamarin.iOS 项目,我在 Xcode 中添加了按钮。如果我想以相同的方式设置某些按钮的样式,而不必在代码中重复自己,我该怎么做?我可以创建一个类或特定按钮可以继承的东西吗?

回答1

如果我想以相同的方式设置某些按钮的样式而不必在代码中重复自己,我该怎么做?我可以创建一个类或特定按钮可以继承的东西吗?

答:这可以通过Custom Renderer来实现。

首先,在您的共享项目中,创建一个基类:

CustomButton.cs


    public class CustomButton : Button
   {
   }

然后,在您的 iOS 项目中,创建一个自定义渲染器:

[assembly: ExportRenderer(typeof(CustomButton), typeof(CustomButtonRenderer))]
namespace App26.iOS
{


   public class CustomButtonRenderer : ButtonRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
    {
        base.OnElementChanged(e);

        if (e.OldElement != null)
        {
            // Cleanup
        }

        if (Control != null)
        {
            //set custom style here
            Control.TitleShadowOffset = new CoreGraphics.CGSize(1, 1);
            Control.SetTitleShadowColor(Color.Black.ToUIColor(), UIKit.UIControlState.Normal);
            Control.BackgroundColor = UIColor.Green;
            Control.Title(UIControlState.Selected);

         }
       }
    }
}

最后但同样重要的是,使用您的自定义按钮,如下所示:

<local:CustomButton/>

MS 官方文档链接:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/

相似文章

kivymd - kivy-ios 不会在 xcode 中构建

我现在已经经历了至少100次了……尝试构建、订单的各种组合,同时每次都尝试不同的“修复”……我想我已经缩小到两个阻止我前进的错误。此外,几周前我已经成功构建了同样的Kivy应用程序。应用程序的唯一变化...

随机推荐

最新文章