我使用的是iOS 6,所以归因字符串应该很容易使用,对吧?嗯......不是那么多.
我想做的事:
使用自定义子类UIButton(它不做任何自定义titleLabel),我想要一个多行,属性标题,即:
到目前为止,我已经能够获得#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)
根据我的尝试,似乎我可以有以下选项之一,但不是两个:
如果必须的话,我可以与其中一个生活在一起,但我无法相信我不能拥有一个看起来相当简单的概念.
谁能告诉我我错了什么?
这是我正在尝试的代码的最后一次迭代:
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) 我完全沉浸在Core Text的行距中.我正在使用NSAttributedString并在其上指定以下属性: - kCTFontAttributeName - kCTParagraphStyleAttributeName
从这里创建CTFrameSetter并将其绘制到上下文中.
在段落样式属性中,我想指定行的高度.
当我使用kCTParagraphStyleSpecifierLineHeightMultiple时,每一行都会在文本顶部接收填充,而不是在此高度的中间显示文本.
当我使用kCTParagraphStyleSpecifierLineSpacing时,填充将添加到文本的底部.
请帮助我达到指定的行高,文本(字形)位于该高度的中间,而不是位于行的底部或顶部的文本.
如果没有明确创建CTLine的路线等,这是不可能的?
我NSAttributedString用来生成一个有两种不同大小的字符串.默认情况下,其底部对齐方式如下所示:

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

要清楚,这是一个单独的属性字符串,而不是两个或更多.这是一个简单的例子来描述我的问题,我真正想做的事情更复杂.
我想将a的子串(例如@"replace")替换为NSAttributedString另一个子串NSAttributedString.
我在寻找一个相当于方法NSString的stringByReplacingOccurrencesOfString:withString:对NSAttributedString.
我有一个关于自定义圆角和文本背景颜色的问题UIView.
基本上,我需要在自定义UIView中实现这样的效果(图像附加 - 注意一侧的圆角):

我在考虑使用的方法是:
但是,我不确定这是否是唯一的解决方案(或者就此而言,这是否是最有效的解决方案).
使用a UIWebView不是一个选项,所以我必须在自定义中执行UIView.
我的问题是,这是最好的使用方法,我是否走在正确的轨道上?或者我错过了重要的事情或错误的方式?
我想在固定宽度的框中绘制一些NSAttributedStrings,但是在计算绘制它们时会占用的正确高度时遇到问题.到目前为止,我已经尝试过:
调用- (NSSize) size,但结果是无用的(为此目的),因为他们会给出字符串所需的宽度.
- (void)drawWithRect:(NSRect)rect options:(NSStringDrawingOptions)options使用矩形调用我想要的宽度和NSStringDrawingUsesLineFragmentOrigin选项,就像我在绘图中使用的那样.结果......难以理解; 当然不是我想要的.(正如许多地方所指出的,包括这个 Cocoa-Dev线程).
创建一个临时的NSTextView并执行:
当我查询tmpView的框架时,宽度仍然是所需的,并且高度通常是正确的......直到我得到更长的字符串,当它通常是所需尺寸的一半时.(似乎没有最大尺寸被击中:一帧将是273.0高(约300太短),另一帧将是478.0(只有60-ish太短)).
[[tmpView textStorage] setAttributedString:aString];
[tmpView setHorizontallyResizable:NO];
[tmpView sizeToFit];
如果有人管理过这个,我会感激任何指点.
我想在Swift中附加一个Attributed Text和另一个Attributed Text.请提供任何示例代码,用于在Swift中附加两个属性String的操作.
我可以设置对象的attributedText属性UILabel吗?我尝试了下面的代码:
UILabel *label = [[UILabel alloc] init];
label.attributedText = @"asdf";
Run Code Online (Sandbox Code Playgroud)
但它给出了这个错误:
在'UILabel*'类型的对象上找不到属性"attributedText"
#import <CoreText/CoreText.h> 不工作
我想用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框架制作颜色,但它显示了相同的结果.我应该如何更改代码以正确的方式执行它?
伙计们,谢谢!
我创建了一个采用NSAttributedString的方法,我正在寻找动态创建子视图和标签以将字符串放入.因为需要确定字体和大小等属性来正确确定标签的大小,我需要确定是否可以迭代已应用于属性字符串的值和范围?
我知道我可以单独传递属性,但为了可重用性,我希望能够尽可能少地将参数传递给方法.
ios ×6
objective-c ×3
cocoa ×2
appkit ×1
core-text ×1
foundation ×1
line-spacing ×1
nstextview ×1
replace ×1
rgb ×1
string ×1
swift ×1
uibutton ×1
uicolor ×1
uilabel ×1
uiview ×1