ios - Xamarin IOS 自定义控件属性不显示

标签 ios xamarin xamarin.ios

我为 Xamarin.IOS 应用程序创建了自己的自定义控件,并为其创建了自定义属性。 我想在 Visual Studio 属性工具箱中为其属性设置值,但没有 VS 没有 Xcode 不显示任何自定义属性。 我必须为自定义按钮设置自定义文本紧排间距,我不想使用任何棘手或丑陋的方法来解决它。

这是我的自定义控件代码:

[Register("CustomButton"), DesignTimeVisible(true)]
    public class CustomButton : UIButton
    {
        private float _textLetterSpacing;

        protected internal CustomButton(IntPtr handle) : base(handle)
        {
        }

        [Export("TextLetterSpacing"), Browsable(true)]
        public float TextLetterSpacing
        {
            get => _textLetterSpacing;
            set
            {
                _textLetterSpacing = value;
                SetNeedsDisplay();
            }
        }

        public CustomButton()
        {
            Initialize();

        }

        public override void AwakeFromNib()
        {
            // Called when loaded from xib or storyboard.
            Initialize();
        }

        void Initialize()
        {

              TextLetterSpacing = -0.49f;
            var title = this.Title(UIControlState.Normal);
            var attributedTitle = new NSAttributedString(title, new UIStringAttributes() { KerningAdjustment = TextLetterSpacing, ForegroundColor = this.CurrentTitleColor });
            this.SetAttributedTitle(attributedTitle, UIControlState.Normal);
            SetNeedsDisplay();
        }

    }

最佳答案

我想通了这个问题。 应该有 public 构造函数而不是 protected internal:

public CustomButton(IntPtr handle) : base(handle)
{
}

关于ios - Xamarin IOS 自定义控件属性不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52465290/

相关文章:

c# - 图像水印上的 Xamarin.iOS 图像

ios - 如何强制ios执行自动布局?

ios - 自定义 ios 应用程序找不到我的 nrf 信标

android - 在 Xamarin Mono for Android 中使用 Intent 过滤器处理特定 URL

c# - Xamarin AlarmManager Android

c# - Xamarin android c# 在 3 秒后调用或显示事件

c# - 延迟加载和多线程

ios - 应用 CIFilter 时图像变得模糊

iphone - SIGSEGV 在 iOS TestFlight 设备上崩溃

ios - 在 UITableView 中隐藏单元格(在 Xamarin 中)