使用" AdjustsFontSizeToFitWidth"在iOS中使用Label时

时间:2017-11-27 22:04:09

标签: ios xamarin

我想问一下是否有办法让Xamarin.Forms.Label告诉它应该使用" AdjustsFontSizeToFitWidth"当应用程序在iOS上运行时。

这是可能的,还是Xamarin.Forms.Label与UILabel完全不同的东西?

我在想Xamarin.Form.Label"倒退了#34;在UILabel为iOS构建时,情况就是这样吗?

编辑:

根据我如何理解我试过的评论,但它不会起作用:

        switch (Device.RuntimePlatform)
        {
            case Device.iOS:
                {
                    _label1.AdjustsFontSizeToFitWidth = true;
                    break;
                }
            default:
                {
                    break;
                }
        }

我得到的错误是" AdjustsFontSizeToFitWidth"不属于Xamarin.Forms.Label。

的财产

编辑2: 根据另一条评论,我尝试了以下内容:

public class clsGridCell : ContentView
{
    private Xamarin.Forms.Label _label1;
    //problem is that it's not longer a Xamarin.Forms.Label, but UILabel on iOS, but I can't declare it as "var" when I want to reuse it for binding. 
    //declaring it as "object" would break the bindings.

    public clsGridCell()
    {

        switch (Device.RuntimePlatform)
        {
            case Device.iOS:
                {
                    _label1 = new UILabel
                    _label1.AdjustsFontSizeToFitWidth = true;
                    break;
                }
            default:
                {
                    _label1 = new Xamarin.Forms.Label()
                    {
                        HorizontalTextAlignment = TextAlignment.Center,
                        VerticalTextAlignment = TextAlignment.Center,
                    };
                    break;
                }
        }
        this._label1.SetBinding(Label.BackgroundColorProperty, new Binding() { Path = "BackgroundColor", Source = this });
        this._label1.SetBinding(Label.TextProperty, new Binding() { Path = "Text", Source = this });
        this._label1.SetBinding(Label.TextColorProperty, new Binding() { Path = "TextColor", Source = this });

错误符合" _label1.AdjustsFontSizeToFitWidth = true;"。 抛出的错误是"标签不包含" AdjustsFontSizeToFitWidth""。

那是因为我宣称它是"标签"。 我这样做是因为" var"在这种情况下是不可能的。

在不破坏绑定的情况下声明它的替代方法是什么? 将其声明为"对象"会破坏绑定。

谢谢!

0 个答案:

没有答案