大佬教程收集整理的这篇文章主要介绍了ios – 在UITextView – NSAttributedString中绘制一条线,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我尝试过的
NSString *unicodeStr = [NSString StringWithFormat:@"%C%C%C",0x00A0,0x0009,0x00A0]; //nbsp,tab,nbsp NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:unicodeStr]; NSRange strRange = NsmakeRange(0,str.length); NSMutableParagraphStyle *const tabStyle = [[NSMutableParagraphStyle alloc] init]; tabStyle.headIndent = 16; //padding on left and right edges tabStyle.firstLineHeadIndent = 16; tabStyle.tailIndent = -16; NSTextTab *listTab = [[NSTextTab alloc] initWithTextAlignment:NSTextAlignmentCenter LOCATIOn:40 options:@{}]; //this is how long I want the line to be tabStyle.tabStops = @[listTab]; [str addAttribute:NSParagraphStyleAttributENAME value:tabStyle range:strRange]; [str addAttribute:NSStrikethroughStyleAttributENAME value:[NSnumber numberWithInt:2] range:strRange];
但无论我为制表位置(本例中为40)和tailIndent(此处为-16)提供的值,该行仅尊重headIndent并跨越整个UITextView宽度(当然减去headIndent).
编辑 – 我很确定问题是因为我没有使用正确的unicode字符(尽管它们似乎是合乎逻辑的选择).如果这给某人一个提示,如果我在第二个之后添加一个空格,即朝向末尾,则标签仅限于一个标签长度
你能试试这个:
NSTextTab *listTab = [[NSTextTab alloc] initWithTextAlignment:NSTextAlignmentCenter LOCATIOn:self.textView.frame.size.width - tabStyle.firstLineHeadIndent + tabStyle.tailIndent options:@{}];
这是完整的代码:
- (void) viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; NSString *unicodeStr = @"\n\u00a0\t\t\n"; NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:unicodeStr]; NSRange strRange = NsmakeRange(0,str.length); NSMutableParagraphStyle *const tabStyle = [[NSMutableParagraphStyle alloc] init]; tabStyle.headIndent = 16; //padding on left and right edges tabStyle.firstLineHeadIndent = 16; tabStyle.tailIndent = -70; NSTextTab *listTab = [[NSTextTab alloc] initWithTextAlignment:NSTextAlignmentCenter LOCATIOn:self.textView.frame.size.width - tabStyle.headIndent + tabStyle.tailIndent options:@{}]; //this is how long I want the line to be tabStyle.tabStops = @[listTab]; [str addAttribute:NSParagraphStyleAttributENAME value:tabStyle range:strRange]; [str addAttribute:NSStrikethroughStyleAttributENAME value:[NSnumber numberWithInt:2] range:strRange]; NSAttributedString *htmlStr = [[NSAttributedString alloc] initWithData:[@"<h1>Lorem ipsum dolor sit er elit lamet</h1>" dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil]; [str insertAttributedString:htmlStr aTindex:0]; [str appendAttributedString:htmlStr]; self.textView.attributedText = str; }
以上是大佬教程为你收集整理的ios – 在UITextView – NSAttributedString中绘制一条线全部内容,希望文章能够帮你解决ios – 在UITextView – NSAttributedString中绘制一条线所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。