如何在 Xamarin.iOS 中呈现 UIButton

How to render a UIButton in Xamarin.iOS

如何在 Xamarin.iOS 中呈现 UIButton?查看当前 Code 以获取完整列表。

这是我用来创建按钮并将其添加到 Xamarin.Forms.Platform.iOS.CellTableViewCell 单元格的代码。我无法让按钮显示任何内容。 使用 Foundation.NSMutableAttributedString,它会在左上角显示截断的文本部分,无论我尝试什么(对齐、插入、边界、各种约束等)。我目前正在尝试 Xamarin.Forms.Platform.iOS.Renderers.ButtonRenderer 中的内容,但仍然无法显示任何内容,没有文本、没有按钮或其轮廓。

如果您可以 fork 回购并修复它或post这里的解决方案,我将不胜感激。

protected override void SetUpContentView()
{
    var insets = new UIEdgeInsets(SVConstants.Cell.PADDING.Top.ToNFloat(), SVConstants.Cell.PADDING.Left.ToNFloat(), SVConstants.Cell.PADDING.Bottom.ToNFloat(), SVConstants.Cell.PADDING.Right.ToNFloat());
    _Button = new UIButton(UIButtonType.RoundedRect)
              {
                  AutoresizingMask = UIViewAutoresizing.All,
                  HorizontalAlignment = UIControlContentHorizontalAlignment.Center,
                  VerticalAlignment = UIControlContentVerticalAlignment.Center,
                  ContentEdgeInsets = insets,
                  // TitleEdgeInsets = insets
              };

    DefaultFontSize = _Button.TitleLabel.ContentScaleFactor;
    DefaultTextColor = _Button.TitleLabel.TextColor;

    _Recognizer = new UILongPressGestureRecognizer(RunLong);
    _Button.TouchUpInside += OnClick;          // 
    _Button.AddGestureRecognizer(_Recognizer); // 


    ContentView.AddSubview(_Button);
    _Button.CenterXAnchor.ConstraintEqualTo(ContentView.CenterXAnchor).Active = true;
    _Button.CenterYAnchor.ConstraintEqualTo(ContentView.CenterYAnchor).Active = true;

    _Button.WidthAnchor.ConstraintEqualTo(ContentView.WidthAnchor).Active = true;
    _Button.HeightAnchor.ConstraintEqualTo(ContentView.HeightAnchor).Active = true;

    UpdateConstraintsIfNeeded();
    LayoutIfNeeded();
}

发现你不能继承它。任何添加到视图的按钮都必须是原生的(UIButton)或自定义呈现的,例如Xamarin.Forms.Platform.iOS.ButtonRenderer;否则不会显示。