C#Monotouch / Xamarin.iOS - UILabel,在单个字符串中包含纯文本和斜体文本

时间:2014-01-22 14:04:56

标签: c# xamarin.ios uilabel xamarin italic

我有一串包含纯文本和斜体文本的文本。 我如何使用UILabel表示这个?

“我是纯文本,而我是斜体文字

var someText =“我是纯文本,而我是斜体文字

UILabel myLabel = new UILabel(new RectangleF(0,0,100,40));
myLabel.Text = someText;

2 个答案:

答案 0 :(得分:4)

我更喜欢这样连接:

var text = new NSMutableAttributedString (
               str: "I am plain text whereas ", 
               font: UIFont.SystemFontOfSize (14f)
               );

text.Append (new NSMutableAttributedString (
               str: "I am italic text.", 
               font: UIFont.ItalicSystemFontOfSize (14f)
               ));

var label = new UILabel () { AttributedText = text };

似乎更容易维护,而不是计算字符。但我完全同意 - 所有这些AttributedString的东西都是hacky。杰森与docs的链接很有帮助,谢谢。

答案 1 :(得分:3)

UILabel有一个AttributedText属性,您可以使用它来设置文本样式。

var prettyString = new NSMutableAttributedString ("UITextField is not pretty!");
prettyString.SetAttributes (firstAttributes.Dictionary, new NSRange (0, 11));
prettyString.SetAttributes (secondAttributes.Dictionary, new NSRange (15, 3));
prettyString.SetAttributes (thirdAttributes.Dictionary, new NSRange (19, 6));

Xamarin Docs中提供了完整的示例。