Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to resize an image or done as a NSAttributedString NSTextAttachment (or set its initital size)

I have a NSAttributedString to which I am adding a NSTextAttachment. The image is 50w by 50h but I'd like it to scale down to reflect the line height of the attributed string. I thought this would be done automatically but I guess not. I have looked at the UImage class reference but this image doesn't seem to be set in a UIImageView so no access to a frame property. Here's a screenshot of what I currently have:

enter image description here

In an ideal world, I would also like to implement a way to scale up the image based upon user input (such as increasing the font size). Any ideas on how to achieve this?

thx

edit 1

here's how I'm creating it:

    NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init];     textAttachment.image = [UIImage imageNamed:@"note-small.png"];     NSLog(@"here is the scale: %f", textAttachment.image.scale);     NSAttributedString *attrStringWithImage = [NSAttributedString attributedStringWithAttachment:textAttachment];     [headerAS replaceCharactersInRange:NSMakeRange([headerAS length], 0) withString:@" "];     [headerAS replaceCharactersInRange:NSMakeRange([headerAS length], 0) withAttributedString:attrStringWithImage]; 
like image 984
timpone Avatar asked Mar 12 '14 16:03

timpone


1 Answers

You should set bounds form attachment to resize image like this:

attachment.bounds = CGRectMake(0, 0, yourImgWidth, yourImgHeight)

like image 162
Dung Nguyen Avatar answered Oct 06 '22 18:10

Dung Nguyen