objective c - Finding the width of an NSString as a CGFloat -
i know has been posted already, solution found
-(cgfloat)widthoftext{ cgrect idealframe = [self.text boundingrectwithsize:self.frame.size options:nsstringdrawinguseslinefragmentorigin attributes:@{ nsfontattributename:self.font } context:nil]; return idealframe.size.width; } self uilabel
isn't working.
i'm trying place button @ end of string need width of string calculate buttons absolute placement
can explain why isn't working or suggest different method?
one or more of inputs not expect, nslog() self.text, self.frame, self.font -- basic debugging.
it better pass in parameters use ivars, allows easier testing. removes dependency on class.
example works properly:
nsstring *text = @"1235"; cgsize framesize = cgsizemake(300, 50); uifont *font = [uifont systemfontofsize:12]; cgrect idealframe = [text boundingrectwithsize:framesize options:nsstringdrawinguseslinefragmentorigin attributes:@{ nsfontattributename:font } context:nil]; nslog(@"width: %0.1f", idealframe.size.width);
Comments
Post a Comment