字体大小更改字距调整,为什么?

问题描述 投票:0回答:1

我有一个UITextView,需要增加字符间距。我已经应用了UIStringAttributeKey.KerningAdjustment并且可以使用,但是现在尝试从UIFont缩小UITextView会停止工作。

ViewController:

textView.ChangeSpaceBetweenCharacters(8.0f);


TextViewExtension:

public static void ChangeSpaceBetweenCharacters(this UITextField textField, float space)
        {
            textField.WeakDefaultTextAttributes.SetValueForKey(NSObject.FromObject((nfloat)space), UIStringAttributeKey.KerningAdjustment);
        }

When I don't change the font it works ...

并且尝试过...

ViewController:

textView.ChangeSpaceBetweenCharacters(8.0f, UIFont("ArialMT", 13);


TextViewExtension:

public static void ChangeSpaceBetweenCharacters(this UITextField textField, float space, UIFont font)
        {
            textField.AttributedText = new NSAttributedString(textField.Text, new UIStringAttributes
            {
                Font = font,
                KerningAdjustment = space

            });
        }

Then when I change the font it looks like this ...

我已经尝试在UIFont之前和之后更改UIStringAttributeKey.KerningAdjustment,但仍然无法正常工作。

我已经进行了很多研究,但仍然无法弄清楚发生了什么。

有人可以帮我吗?

最好的问候,拉斐尔·桑托斯

c# swift xamarin.ios kerning
1个回答
0
投票

我认为问题可能是由您使用的字体方法引起的,因此无法使用:

 UIFont("ArialMT", 13)

相反,您可以使用:

 Font = UIFont.FromName("ArialMT", 13),

OR

 Font = UIFont.SystemFontOfSize(10),

我测试下面的示例代码,它对我有用:

public override void ViewDidLoad()
{
    base.ViewDidLoad();
    // Perform any additional setup after loading the view, typically from a nib.

    NSMutableAttributedString mtText = new NSMutableAttributedString("testTextfield", new UIStringAttributes
    {
        Font = UIFont.SystemFontOfSize(10),
        KerningAdjustment = 8.0f

    });

    UITextField textField = new UITextField();
    textField.Frame = new CoreGraphics.CGRect(10,20,350,50);
    textField.AttributedText = mtText;        

    Add(textField);

}
© www.soinside.com 2019 - 2024. All rights reserved.