使用nsmutableattributedstring

时间:2016-10-25 06:53:59

标签: ios objective-c uitextview nsmutablestring

在开始之前,details_LabelUITextView。我的命名错误,因为之前它是标签,但我更改为UITextView以获取复制文本和其他功能。

以下是我的内容

  details_Label.text = [NSString stringWithFormat:@"%@", [[[detailsArray objectAtIndex:0] valueForKey:@"Details"] substringToIndex:200]];

NSMutableAttributedString *attributedString;
attributedString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@", details_Label.text] attributes:@{ NSFontAttributeName : [self adjustDefaultFont:85], NSLigatureAttributeName: @2}];

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init] ;
[paragraphStyle setAlignment:NSTextAlignmentCenter];
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [details_Label.text length])];

details_Label.editable = NO;
details_Label.selectable = YES;
details_Label.tintColor = pBlackColor;

[details_Label sizeToFit];

[details_Label layoutIfNeeded];
[details_Label setTextContainerInset:UIEdgeInsetsMake(0, 0, 0, 0)];

[details_Label.textContainer setSize:details_Label.frame.size];
details_Label.frame = CGRectMake(50*iPhoneFactorX, startX, 980*iPhoneFactorX, details_Label.frame.size.height);

这就是我显示文字的方式。

问题是 下一行有一半字 如下图所示...

enter image description here

一开始我认为这是因为长篇文章,但是当我刚拿到前200个字符时,仍然会出现问题。

details_Label.text = [NSString stringWithFormat:@"%@", [[[detailsArray objectAtIndex:0] valueForKey:@"Details"] substringToIndex:200]];

知道出了什么问题吗?

编辑1

当我打印NSAttributedString时,下面是我得到的。

  

NSFont =" font-family:\" Arial-BoldMT \&#34 ;; font-weight:bold; font-style:normal; font-size:34.72pt&#34 ;;       NSParagraphStyle ="对齐1,LineSpacing 0,ParagraphSpacing 0,ParagraphSpacingBefore 0,HeadIndent 0,TailIndent 0,FirstLineHeadIndent 0,LineHeight 0/0,LineHeightMultiple 0,LineBreakMode 0,Tabs(\ n 28L,\ n 56L,\ n 84L,\ n 112L,\ n 140L,\ n 168L,\ n 196L,\ n 224L,\ n 252L,\ n 280L,\ n 308L,\ n \ n 336L \ n),DefaultTabInterval 0,Blocks(\ n),列表(\ n),BaseWritingDirection -1,HyphenationFactor 0,TighteningForTruncation NO,HeaderLevel 0&#34 ;;   }

2 个答案:

答案 0 :(得分:1)

最后我发现了奇怪的事情......

我来的字符串如下。

word1 word2 word3 word4 word5

但是我把它视为

word1 word2 word3 word4 word5

在我的情况下,word1 word2 word3 word4 word5是一个单词而不是5个单词,剩余文本文本将转到下一行,这是默认的。

希望所有人都遇到问题。

修复 是我手动重新输入所有文字,一切正常。

这可能会发生,因为客户端复制了HTML文本并粘贴在文本区域中。

我在浏览器中为cPanel

执行检查元素后发现这个奇怪的事情

答案 1 :(得分:-1)

我建议而不是写硬编码为什么不使用故事板进行混合步骤reah更改对齐 1)。选择文本视图 2)。转到Inspector属性并根据您的要求选择alingment 你也可以改变颜色和其他东西而不是硬编码