首页 > 代码库 > IOS7图文混排及高度
IOS7图文混排及高度
_textView =[UITextView new];
NSString*str =@"是是是是是是是是是是是是是是是是是是是是是是是是是是是是是是是是是是是是是是是是";
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:str];
NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init];
textAttachment.image = [UIImage imageNamed:@"biao1@2x"] ;
textAttachment.bounds = CGRectMake(0, -10, textAttachment.image.size.width , textAttachment.image.size.height);
NSAttributedString *attrStringWithImage = [NSAttributedString attributedStringWithAttachment:textAttachment];
[attributedString replaceCharactersInRange:NSMakeRange(4, 1) withAttributedString:attrStringWithImage];
[_textView setAttributedText:attributedString];
NSLayoutManager *layoutManager = [[NSLayoutManager alloc] init];
NSTextContainer *container = [[NSTextContainer alloc] initWithSize:CGSizeMake(WIDTH, FLT_MAX)];
UIFont* textFont = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
NSDictionary* attrs = @{NSFontAttributeName: textFont};
NSTextStorage *txtStorage = [[NSTextStorage alloc] initWithString:str attributes:attrs];
[txtStorage addLayoutManager:layoutManager];
[layoutManager addTextContainer:container];
float height= [layoutManager boundingRectForGlyphRange:[layoutManager glyphRangeForTextContainer:container] inTextContainer:container].size.height;
height= [_textView sizeThatFits:CGSizeMake(WIDTH, FLT_MAX)].height;
// [layoutManager glyphRangeForTextContainer:container];
// height = [layoutManager usedRectForTextContainer:container].size.height;
NSLog(@"height:%f",height);
_textView.frame = CGRectMake(0, 100, WIDTH, height);
NSLog(@"attrStringWithImage.size:%@",NSStringFromCGSize(attrStringWithImage.size));
NSLog(@"attributedString.size:%@",NSStringFromCGSize(attributedString.size));
NSLog(@"%@",NSStringFromCGRect(_textView.frame));
[self.view addSubview:_textView];
另外text.html可以用显示,不用uiwebview
NSURL *url = [[NSBundle mainBundle] URLForResource:@"text" withExtension:@"html"];
NSAttributedString *attrStr = [[NSAttributedString alloc]
initWithFileURL:url
options:@{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType}
documentAttributes:nil error:nil];
[_textView setAttributedText:attrStr];