标签渲染器问题,而点击阅读更多...文本不是仅在 ios 中自动换行
Posted
技术标签:
【中文标题】标签渲染器问题,而点击阅读更多...文本不是仅在 ios 中自动换行【英文标题】:LabelRenderer issue While Tap ReadMore... text not wordwrap in ios only 【发布时间】:2022-01-18 15:39:45 【问题描述】:我们是显示标签的列表 cmets,最初它显示单行,同时点击该多行显示其要求,并且在 android 中也可以按预期工作,但 ios 无法正常工作。在 Labelrenderer 中点击 ReadMore 时似乎无法正常工作
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
base.OnElementPropertyChanged(sender, e);
if (Control != null && Element != null)
var previous = UIApplication.CheckForIllegalCrossThreadCalls;
UIApplication.CheckForIllegalCrossThreadCalls = false;
if (!string.IsNullOrEmpty(Element.Text))
Control.Text = Element.Text;
UIApplication.CheckForIllegalCrossThreadCalls = previous;
protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
base.OnElementChanged(e);
if (Control != null)
if (Element.LineBreakMode == LineBreakMode.TailTruncation)
Control.AdjustsFontSizeToFitWidth = false;
Control.LineBreakMode = UILineBreakMode.TailTruncation;
在 IOS 中是否缺少要添加的 Labelrenderer?谢谢提前。
【问题讨论】:
【参考方案1】:如果你想这样做,你可以在xamarin.forms中设置maxline属性,标签在开头显示时设置为1,点击后设置为10。like
<Label x:Name="mylabel" Text="This is a really long long text,This is a really long long text,This is a really long long text,This is a really long long text"
WidthRequest="100" HorizontalOptions="CenterAndExpand"
MaxLines="1">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="onTapped"/>
</Label.GestureRecognizers>
</Label>
代码隐藏:
private void onTapped(object sender, EventArgs e)
mylabel.MaxLines = 10;
【讨论】:
标签文本是动态添加的,我们无法预测添加了多少文本,那么我们如何设置MaxLines以及实现渲染器。 如果你的文本有 2 行并且 maxline 是 3 ,它不会改变标签的大小,它仍然会显示 2 行。所以你可以将maxline设置为你想要的大小。以上是关于标签渲染器问题,而点击阅读更多...文本不是仅在 ios 中自动换行的主要内容,如果未能解决你的问题,请参考以下文章
自定义标签渲染器在 Xamarin iOS 的滚动列表视图中显示错误的文本样式
使 eternicode 日期选择器在点击时打开,而不是焦点