我有一串包含纯文本和斜体文本的文本。 我如何使用UILabel表示这个?
“我是纯文本,而我是斜体文字
var someText =“我是纯文本,而我是斜体文字
UILabel myLabel = new UILabel(new RectangleF(0,0,100,40));
myLabel.Text = someText;
答案 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中提供了完整的示例。