gpt4 book ai didi

ios - 带有CTStringAttributes和NSMutableAttributedString的CTFont使我的应用程序在xamarin中崩溃

转载 作者:行者123 更新时间:2023-12-01 19:08:15 35 4
gpt4 key购买 nike

我正在尝试创建NSMutableAttributedString并使用SetProperties方法设置其属性。但是我的应用因错误而崩溃,

MonoTouch.Foundation.MonoTouchException exception - NSInvalidArgumentException Reason: unrecognized selector sent to instance 0xc305d00.*

码:
var richTask = new NSMutableAttributedString ("Random");
var fda = new CTFontDescriptorAttributes {
FamilyName = "Courier",
StyleName = "Bold",
Size = 18f
};
var fd = new CTFontDescriptor (fda);
var font = new CTFont (fd, 0);

var attrs = new CTStringAttributes { Font = font };
var range = new NSRange (0, 3);
richTask.SetAttributes(attrs, range);

_label.AttributedText = richTask;

此代码在 GetCellUITableViewController方法中。我希望仅能更改字符串的前3-4个字母的字体或颜色。

我发现,如果我取消了Font组件并设置了另一个属性(例如StrokeWidth),则可以正常工作
var attrs = new CTStringAttributes { /*Font = font*/ StrokeWidth = 5f };

因此,似乎字体初始化有点不正确。这是为什么?为什么它会使我的应用程序崩溃?

感谢前进!

最佳答案

以下是使用UIStringAttributes的示例:

        string line1 = "Don't have Facebook?", line2 = "\nCreate or sign in with an alternate account";
var attributedString = new NSMutableAttributedString(line1 + line2);

attributedString.SetAttributes(new UIStringAttributes
{
Font = Theme.BoldSmallFont,
ForegroundColor = Theme.LightGray,

}.Dictionary, new NSRange(0, line1.Length));

attributedString.SetAttributes(new UIStringAttributes
{
Font = Theme.RegularSmallFont,
ForegroundColor = Theme.LightGray,

}.Dictionary, new NSRange(line1.Length, line2.Length));

_alternateSignIn.SetAttributedTitle(attributedString, UIControlState.Normal);

这是在 UIButton上设置两种不同字体的示例。 Theme是我自己的静态类,您可以用自己的颜色和字体替换。

您应该能够使用 UIStringAttributesCTStringAttributes完成相同的事情。您可能会因崩溃的情况向Xamarin发布错误报告: http://bugzilla.xamarin.com

*注意:属性字符串仅适用于iOS 6及更高版本。这是Apple添加这些API的时间。

关于ios - 带有CTStringAttributes和NSMutableAttributedString的CTFont使我的应用程序在xamarin中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18485346/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com