首页 > 代码库 > 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];