标签: nsattributedstring

UIButton上的iOS NSAttributedString

我使用的是iOS 6,所以归因字符串应该很容易使用,对吧?嗯......不是那么多.

我想做的事:

使用自定义子类UIButton(它不做任何自定义titleLabel),我想要一个多行,属性标题,即:

  1. 第一行上的所有大写(我意识到这不是属性的一部分)
  2. 在第一行加粗
  3. 在第一行加下划线
  4. 第二行"正常"重量
  5. 第二行没有下划线
  6. 以两条线为中心

到目前为止,我已经能够获得#1到5(至少,我认为我做过,但是当前的测试会产生多行文本错误),但是当我尝试做某事(任何东西!)时要居中的文本,我的应用程序不断崩溃.当我尝试使所有6个项目工作(通过各种方法)时,我得到以下崩溃/错误:

Terminating app due to uncaught exception 
'NSInternalInconsistencyException', reason: 
'NSAttributedString invalid for autoresizing, 
it must have a single spanning paragraph style
(or none) with a non-wrapping lineBreakMode.'
Run Code Online (Sandbox Code Playgroud)

根据我的尝试,似乎我可以有以下选项之一,但不是两个:

  1. 多线,居中的标签
  2. 属性标签

如果必须的话,我可以与其中一个生活在一起,但我无法相信我不能拥有一个看起来相当简单的概念.

谁能告诉我我错了什么?

这是我正在尝试的代码的最后一次迭代:

NSMutableParagraphStyle *style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
[style setAlignment:NSTextAlignmentCenter];
[style setLineBreakMode:NSLineBreakByWordWrapping];

UIFont *font1 = [UIFont fontWithName:@"HelveticaNeue-Medium" size:20.0f];
UIFont *font2 = [UIFont fontWithName:@"HelveticaNeue-Light"  size:20.0f];
NSDictionary *dict1 = @{NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle),  
                        NSFontAttributeName:font1}; …
Run Code Online (Sandbox Code Playgroud)

uibutton nsattributedstring ios

56
推荐指数
3
解决办法
5万
查看次数

核心文本 - NSAttributedString线条高度做得对吗?

我完全沉浸在Core Text的行距中.我正在使用NSAttributedString并在其上指定以下属性: - kCTFontAttributeName - kCTParagraphStyleAttributeName

从这里创建CTFrameSetter并将其绘制到上下文中.

在段落样式属性中,我想指定行的高度.

当我使用kCTParagraphStyleSpecifierLineHeightMultiple时,每一行都会在文本顶部接收填充,而不是在此高度的中间显示文本.

当我使用kCTParagraphStyleSpecifierLineSpacing时,填充将添加到文本的底部.

请帮助我达到指定的行高,文本(字形)位于该高度的中间,而不是位于行的底部或顶部的文本.

如果没有明确创建CTLine的路线等,这是不可能的?

nsattributedstring core-text line-spacing

55
推荐指数
5
解决办法
5万
查看次数

在NSAttributedString中垂直居中两种不同大小的字体

NSAttributedString用来生成一个有两种不同大小的字符串.默认情况下,其底部对齐方式如下所示:

基线对齐尺寸

但我希望将它垂直居中,如下所示: 垂直居中的尺寸

要清楚,这是一个单独的属性字符串,而不是两个或更多.这是一个简单的例子来描述我的问题,我真正想做的事情更复杂.

nsattributedstring ios

53
推荐指数
3
解决办法
2万
查看次数

将NSAttributedString的子字符串替换为另一个NSAttributedString

我想将a的子串(例如@"replace")替换为NSAttributedString另一个子串NSAttributedString.

我在寻找一个相当于方法NSStringstringByReplacingOccurrencesOfString:withString:NSAttributedString.

string cocoa replace foundation nsattributedstring

52
推荐指数
6
解决办法
3万
查看次数

NSAttributedString背景颜色和圆角

我有一个关于自定义圆角和文本背景颜色的问题UIView.

基本上,我需要在自定义UIView中实现这样的效果(图像附加 - 注意一侧的圆角): 背景亮点

我在考虑使用的方法是:

  • 使用Core Text获取字形运行.
  • 检查高光范围.
  • 如果当前运行在高亮范围内,则在绘制字形运行之前绘制具有圆角和所需填充颜色的背景矩形.
  • 绘制字形运行.

但是,我不确定这是否是唯一的解决方案(或者就此而言,这是否是最有效的解决方案).

使用a UIWebView不是一个选项,所以我必须在自定义中执行UIView.

我的问题是,这是最好的使用方法,我是否走在正确的轨道上?或者我错过了重要的事情或错误的方式?

objective-c quartz-graphics uiview nsattributedstring ios

50
推荐指数
4
解决办法
2万
查看次数

如何以固定宽度获取NSAttributedString的高度

我想在固定宽度的框中绘制一些NSAttributedStrings,但是在计算绘制它们时会占用的正确高度时遇到问题.到目前为止,我已经尝试过:

  1. 调用- (NSSize) size,但结果是无用的(为此目的),因为他们会给出字符串所需的宽度.

  2. - (void)drawWithRect:(NSRect)rect options:(NSStringDrawingOptions)options使用矩形调用我想要的宽度和NSStringDrawingUsesLineFragmentOrigin选项,就像我在绘图中使用的那样.结果......难以理解; 当然不是我想要的.(正如许多地方所指出的,包括这个 Cocoa-Dev线程).

  3. 创建一个临时的NSTextView并执行: 当我查询tmpView的框架时,宽度仍然是所需的,并且高度通常是正确的......直到我得到更长的字符串,当它通常是所需尺寸的一半时.(似乎没有最大尺寸被击中:一帧将是273.0高(约300太短),另一帧将是478.0(只有60-ish太短)).
    [[tmpView textStorage] setAttributedString:aString];
    [tmpView setHorizontallyResizable:NO];
    [tmpView sizeToFit];

如果有人管理过这个,我会感激任何指点.

cocoa nstextview nsattributedstring appkit

48
推荐指数
4
解决办法
3万
查看次数

如何使用Swift中的归属字符串附加归因文本字符串

我想在Swift中附加一个Attributed Text和另一个Attributed Text.请提供任何示例代码,用于在Swift中附加两个属性String的操作.

nsattributedstring swift

48
推荐指数
3
解决办法
4万
查看次数

我可以设置`UILabel`的`attributedText`属性

我可以设置对象的attributedText属性UILabel吗?我尝试了下面的代码:

UILabel *label = [[UILabel alloc] init];
label.attributedText = @"asdf";
Run Code Online (Sandbox Code Playgroud)

但它给出了这个错误:

在'UILabel*'类型的对象上找不到属性"attributedText"

#import <CoreText/CoreText.h> 不工作

objective-c nsattributedstring ios

45
推荐指数
5
解决办法
9万
查看次数

如何从RGBA创建UIColor?

我想用NSAttributedString在我的项目,但是当我试图设置颜色,这是不是从标准组(redColor,blackColor,greenColor等)UILabel显示在白色这些信件.这是我的代码行.

[attributedString addAttribute:NSForegroundColorAttributeName
                         value:[UIColor colorWithRed:66
                                               green:79
                                                blue:91
                                               alpha:1]
                         range:NSMakeRange(0, attributedString.length)];
Run Code Online (Sandbox Code Playgroud)

我尝试使用CIColorCore Image框架制作颜色,但它显示了相同的结果.我应该如何更改代码以正确的方式执行它?

伙计们,谢谢!

rgb objective-c nsattributedstring uicolor ios

44
推荐指数
3
解决办法
6万
查看次数

是否可以获取NSMutableAttributedString的属性和范围列表?

我创建了一个采用NSAttributedString的方法,我正在寻找动态创建子视图和标签以将字符串放入.因为需要确定字体和大小等属性来正确确定标签的大小,我需要确定是否可以迭代已应用于属性字符串的值和范围?

我知道我可以单独传递属性,但为了可重用性,我希望能够尽可能少地将参数传递给方法.

nsattributedstring uilabel ios nsmutableattributedstring

43
推荐指数
3
解决办法
2万
查看次数