我有一个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);
}
并且尝试过...
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
});
}
我已经尝试在UIFont
之前和之后更改UIStringAttributeKey.KerningAdjustment
,但仍然无法正常工作。
我已经进行了很多研究,但仍然无法弄清楚发生了什么。
有人可以帮我吗?
最好的问候,拉斐尔·桑托斯
我认为问题可能是由您使用的字体方法引起的,因此无法使用:
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);
}