dennis
dennis

Reputation: 117

iOS 7 uitextview NSLineBreakByWordWrapping not working

In iOS 7 I use new method to calculate the textview height,but it seems that it's not word wrapping, besides,the height is not the height of the text.

self.textview.textContainer.lineBreakMode = NSLineBreakByWordWrapping;
    self.textview.showsHorizontalScrollIndicator= NO;
    self.textview.showsVerticalScrollIndicator = NO;
//    [self.textview sizeThatFits:CGSizeMake(296, 474)];
//    [self.textview.text sizeWithFont:[UIFont systemFontOfSize:14] forWidth:296.0 lineBreakMode:NSLineBreakByWordWrapping];

    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    [paragraphStyle setLineBreakMode:NSLineBreakByWordWrapping];

    NSDictionary *attributes = @{ NSFontAttributeName: self.textview.font, NSParagraphStyleAttributeName : paragraphStyle };
//
   CGSize size= [self.textview.text boundingRectWithSize:CGSizeMake(CGRectGetWidth(self.textview.frame), MAXFLOAT)
                                              options:NSStringDrawingUsesLineFragmentOrigin
                                           attributes:attributes
                                              context:nil].size;
    CGRect frame = self.textview.frame;
    frame.size = size;
    self.textview.frame= frame;

anyone help?

enter image description here

Upvotes: 2

Views: 5036

Answers (3)

Vins
Vins

Reputation: 385

I had a similar problem because I had a wrong character space. For replace I used:

message = [message stringByReplacingOccurrencesOfString:@"\u00A0" withString:@“ "];

Upvotes: 0

dennis
dennis

Reputation: 117

solved the problem it's because the text has wrong white charter ,that is it replace white character with other character.

Upvotes: 2

user7388
user7388

Reputation: 1741

Try this:

CGSize maximumLabelSize = CGSizeMake(295,99999);

    CGSize expectedLabelSize = [self.textview. sizeWithFont:self.textview..font constrainedToSize:maximumLabelSize lineBreakMode:self.textview.lineBreakMode];   

    //adjust the label the the new height.
    CGRect newFrame = self.textview.frame;
    newFrame.size.height = expectedLabelSize.height;
    self.textview.frame = newFrame;

Check image having your given text : http://screencast.com/t/Yqr6oSOvhN1

Upvotes: 0

Related Questions