如何在 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;否则不会显示。
如何在 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;否则不会显示。