标签渲染器问题,而点击阅读更多...文本不是仅在 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中设置ma​​xline属性,标签在开头显示时设置为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 日期选择器在点击时打开,而不是焦点

通过 URL 而不是 HTML 提交 Paypal 打开新标签

如何更改复选框输入样式,以便用户点击标签而不是实际框?

iOS阅读器实践系列图文混排

如何呈现材料 UI 输入控件而不是材料 UI 日期选择器的文本字段