如何解决为什么 iOS ButtonRenderer 中标签的宽度始终为 0?
我需要知道iOS中ButtonRenderer-Class中标题标签的宽度,但始终为0,标签上有文字显示,所以不应该是0。
protected override void OnElementChanged(...){
base.OnElementChanged(e);
{ if(Control != null) {
nfloat size = Control.TitleLabel.Frame.Size.Width; //why always 0?}}}
解决方法
在 iOS 中,您需要在方法 LayoutSubviews 中获取它,如下所示
using Foundation;
using System;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
using CoreGraphics;
using App11.iOS;
using System.ComponentModel;
[assembly:ExportRenderer(typeof(Button),typeof(MyButtonRenderer))]
namespace xxx.iOS
{
public class MyButtonRenderer:ButtonRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
base.OnElementChanged(e);
if (Control != null)
{
}
}
public override void LayoutSubviews()
{
base.LayoutSubviews();
nfloat size = Control.TitleLabel.Bounds.Width;
}
protected override void OnElementPropertyChanged(object sender,PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender,e);
if(e.PropertyName=="Width"|| e.PropertyName == "Height")
{
LayoutIfNeeded();
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。