Out of curiosity, does it matter if you change this line: [content addAttribute:NSParagraphStyleAttributeName value:para range:NSMakeRange(title.length,1)];
to this? [content addAttribute:NSParagraphStyleAttributeName value:para range:NSMakeRange(title.length,blurb.length)]; I don't know that it would, it just stuck out at me as a little odd to only add the paragraph style to one character. On Thu, Nov 8, 2012 at 2:23 PM, Matt Neuburg <m...@tidbits.com> wrote: > I have a tall UILabel with numberOfLines 0 (meaning infinite). The problem > remains the same even if numberOfLines is some large finite number such as > 20, so that's not the source of the problem. > > I am creating an attributed string like this: > > NSString *s1 = @"The Gettysburg Address, as given by A. Lincoln on a > certain occasion\n"; > NSString *s2 = @"Four score and seven years ago, our fathers brought > forth upon this continent a new nation, conceived in liberty, and dedicated > to the proposition that all men are created equal."; > > NSString* title = s1; > NSMutableAttributedString* content = [[NSMutableAttributedString alloc] > initWithString:title > > attributes:@{NSFontAttributeName:[UIFont > fontWithName:@"Arial-BoldMT" size:15], > > NSForegroundColorAttributeName:[UIColor colorWithRed:0.251 green:0.000 > blue:0.502 alpha:1], > NSKernAttributeName:[NSNull > null]}]; > > NSString* blurb = s2; > NSMutableAttributedString* content2 = [[NSMutableAttributedString > alloc] > initWithString:blurb > > attributes:@{NSFontAttributeName:[UIFont > fontWithName:@"Georgia" size:14], > NSKernAttributeName:[NSNull > null]}]; > [content appendAttributedString:content2]; > > // additional code will go here > > self.lab.attributedText = content; > > It works fine; I see the title and the paragraph. Now, you see where it > says "additional code will go here"? In that spot, I add paragraph styles > to my attributed string, like this: > > NSMutableParagraphStyle* para = [NSMutableParagraphStyle new]; > para.headIndent = 10; > para.firstLineHeadIndent = 10; > para.paragraphSpacingBefore = 5; > para.tailIndent = -1; > para.lineBreakMode = NSLineBreakByWordWrapping; > [content addAttribute:NSParagraphStyleAttributeName value:para > range:NSMakeRange(0,title.length)]; > > para = [NSMutableParagraphStyle new]; > para.headIndent = 10; > para.firstLineHeadIndent = 10; > para.tailIndent = -1; > para.lineBreakMode = NSLineBreakByTruncatingTail; > para.paragraphSpacing = 5; > [content addAttribute:NSParagraphStyleAttributeName value:para > range:NSMakeRange(title.length,1)]; > > NSStringDrawingContext* con = [NSStringDrawingContext new]; > CGRect r = [content boundingRectWithSize:CGSizeMake(280,10000) > options:NSStringDrawingUsesLineFragmentOrigin context:con]; > NSLog(@"%f", r.size.height); > > The result (and this is the problem) is that the label truncates after the > **first line** of the second paragraph ("Four score and seven years ago, > our fa…"). Why? There's plenty of room in my label for more lines! > > Moreover, I am trying to predict the height that my text will occupy. > Right now I'm just logging the result, as shown above. Without those > paragraph styles, I get 121, which looks right. With the paragraph styles, > I get 53, which suggests that the truncation is taking place here too! > > Now, I know that I can fix the problem by changing > NSLineBreakByTruncatingTail to NSLineBreakByWordWrapping for the second > paragraph. But I don't want to! Because if in fact the text is too long for > the height of the actual label, I do want ellipses at the end! > > So how can I get tail truncation **when the label is too short**, without > getting **unnecessary** truncation after the first line of the second > paragraph? > > Thx - m. > > -- > matt neuburg, phd = m...@tidbits.com, http://www.apeth.net/matt/ > pantes anthropoi tou eidenai oregontai phusei > Programming iOS 5! http://shop.oreilly.com/product/0636920023562.do > RubyFrontier! http://www.apeth.com/RubyFrontierDocs/default.html > TidBITS, Mac news and reviews since 1990, http://www.tidbits.com > > > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/cocoa-dev/himself%40sfko.com > > This email sent to hims...@sfko.com _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com