多种颜色NSString或NSMutableStrings不可能.所以我听说过一些关于iPad SDK 3.2(或3.2左右)NSAttributedString引入的内容,并且可以在iPhone SDK 4.0 beta版的iPhone上获得.
我想要一个有三种颜色的字符串.
我不使用3个单独的NSStrings的原因是因为三个NSAttributedString子串中的每个子串的长度经常变化,所以我更喜欢,不使用任何计算来重新定位3个单独的NSString对象.
如果可以使用NSAttributedString我如何进行以下操作 - (如果不能使用NSAttributed字符串,你会怎么做):

编辑:
请记住,@"first",@"second"并@"third"会在任何时间其他字符串替换.因此,使用硬编码的NSRange值将不起作用.
我想制作一个简单的咖啡计算器.我需要以克为单位显示咖啡量.克的"g"符号需要附加到我用来显示金额的UILabel上.UILabel中的数字正在根据用户输入动态变化,但我需要在字符串末尾添加小写"g",其格式与更新数字不同.需要将"g"附加到数字上,以便随着数字大小和位置的变化,"g"随着数字"移动".我确信这个问题已经解决了,所以正确的方向链接会有所帮助,因为我已经搜索了我的小心脏.
我在文档中搜索了一个属性字符串,我甚至从应用程序商店下载了一个"Attributed String Creator",但结果代码是在Objective-C中,我使用的是Swift.什么是令人敬畏的,并且可能对其他开发人员学习这种语言有帮助,这是使用Swift中的属性字符串创建具有自定义属性的自定义字体的明显示例.这方面的文档非常令人困惑,因为没有非常明确的方法来解决这个问题.我的计划是创建属性字符串并将其添加到coffeeAmount字符串的末尾.
var coffeeAmount: String = calculatedCoffee + attributedText
Run Code Online (Sandbox Code Playgroud)
其中calculateCoffee是一个Int转换为字符串,"attributedText"是小写的"g",其中包含我想要创建的自定义字体.也许我会以错误的方式解决这个问题.任何帮助表示赞赏!
如何在uiLabel中包含粗体和非粗体文本?
我宁愿不使用UIWebView ..我也读过这可能是使用NSAttributedString,但我不知道如何使用它.有任何想法吗?
Apple在他们的几个应用程序中实现了这一点; 示例截图:
谢谢! - Dom
我一直在搜索这几个小时,但我失败了.我可能甚至不知道我应该寻找什么.
许多应用程序都有文本,在本文中是圆角矩形的Web超链接.当我点击它们UIWebView打开.让我感到困惑的是,他们经常有自定义链接,例如,如果单词以#开头,它也是可点击的,应用程序通过打开另一个视图来响应.我怎样才能做到这一点?是否有可能UILabel或我需要UITextView或其他什么?
hyperlink nsattributedstring uilabel ios uitapgesturerecognizer
在a中点击超链接是微不足道的UITextView.您只需在IB中的视图上设置"检测链接"复选框,它就会检测HTTP链接并将其转换为超链接.
但是,这仍然意味着用户看到的是"原始"链接.RTF文件和HTML都允许您设置一个用户可读的字符串,其中包含一个"后面"的链接.
可以很容易地将属性文本安装到文本视图中(或者,UILabel或者UITextField就此而言).但是,当该属性文本包含链接时,它不可单击.
有没有办法让用户可读的文本可以点击UITextView,UILabel或UITextField?
标记在SO上是不同的,但这是一般的想法.我想要的是这样的文字:
此变形是使用Face Dancer生成的,单击可在应用商店中查看.
我唯一能得到的是:
使用Face Dancer生成此变形,单击http://example.com/facedancer以在应用商店中查看.
我试图获取一个属性字符串的rect,但是boundingRectWithSize调用不符合我传入的大小并且返回一个具有单行高度而不是大高度的矩形(它是一个长字符串).我已经通过传递一个非常大的高度值和0以及下面的代码进行了实验,但是返回的rect总是相同的.
CGRect paragraphRect = [attributedText boundingRectWithSize:CGSizeMake(300,0.0)
options:NSStringDrawingUsesDeviceMetrics
context:nil];
Run Code Online (Sandbox Code Playgroud)
这是否已损坏,或者我是否需要做其他事情以使其返回包裹文本的矩形?
我正在使用一个实例UIWebView来处理一些文本并正确地着色它,它将结果作为HTML而不是显示在UIWebView我希望Core Text用a 显示它NSAttributedString.
我能够创建和绘制NSAttributedString但我不确定如何将HTML转换并将HTML映射到属性字符串.
据我所知,在Mac OS X下NSAttributedString有一个initWithHTML:方法,但这只是Mac的补充,不适用于iOS.
我也知道有一个类似的问题,但它没有答案,我虽然我会再试一次,看看是否有人创造了一种方法来做到这一点,如果是的话,他们是否可以分享它.
我需要在合并字符串之前搜索一些字符串并设置一些属性,因此使用NSStrings - >连接它们 - >使NSAttributedString不是一个选项,有没有办法将attributedString连接到另一个referencedString?
我有一个调查滑块,根据滑块的值显示以下字符串:"非常糟糕,糟糕,好,好,非常好".
以下是滑块的代码:
- (IBAction) sliderValueChanged:(UISlider *)sender {
scanLabel.text = [NSString stringWithFormat:@" %.f", [sender value]];
NSArray *texts=[NSArray arrayWithObjects:@"Very Bad", @"Bad", @"Okay", @"Good", @"Very Good", @"Very Good", nil];
NSInteger sliderValue=[sender value]; //make the slider value in given range integer one.
self.scanLabel.text=[texts objectAtIndex:sliderValue];
}
Run Code Online (Sandbox Code Playgroud)
我希望"非常糟糕"为红色,"坏"为橙色,"好"为黄色,"好"和"非常好"为绿色.
我不明白如何使用NSAttributedString来完成这项工作.
我正在尝试获取一个格式为html的文本片段,以便在UITableViewCell中的iPhone上很好地显示.
到目前为止我有这个:
NSError* error;
NSString* source = @"<strong>Nice</strong> try, Phil";
NSMutableAttributedString* str = [[NSMutableAttributedString alloc] initWithData:[source dataUsingEncoding:NSUTF8StringEncoding]
options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]}
documentAttributes:nil error:&error];
Run Code Online (Sandbox Code Playgroud)
这种作品.我得到一些粗体'好'的文字!但是......它还将字体设置为Times Roman!这不是我想要的字体.我想我需要在documentAttributes中设置一些内容,但是,我无法在任何地方找到任何示例.
ios ×7
objective-c ×4
uilabel ×3
cocoa-touch ×2
hyperlink ×2
swift ×2
core-text ×1
fonts ×1
html ×1
ios4 ×1
iphone ×1
textcolor ×1
uitextview ×1