1

In my project, I have an UILabel within a view. I have to adjust the font size with respect to scale value of recognizer. If I use transform directly frame of the view won't get updated, eventually my text will not be visible fully.

Currently, I am doing the following,

CGSize recognizerViewNewSize = [[recognizer view] frame].size;
recognizerViewNewSize.width *= [recognizer scale];
recognizerViewNewSize.height *= [recognizer scale];
CGRect recognizerViewFrame = [[recognizer view] frame];
recognizerViewFrame.size = recognizerViewNewSize;
[[recognizer view] setFrame:recognizerViewFrame];

While zooming the label inside the view got disappeared. Anything wrong with it? I have set up the label as follows,

UILabel *label = [[UILabel alloc] initWithFrame:[self bounds]];
[label setText:labelText];
[label setFont:labelFont];
[label setBackgroundColor:[UIColor redColor]];
[label setNumberOfLines:0];
[label setAdjustsFontSizeToFitWidth:YES];
[label sizeToFit];
[label setTextAlignment:NSTextAlignmentCenter];
[label setAutoresizingMask:(UIViewAutoresizingFlexibleTopMargin |       UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleRightMargin)];
[label setUserInteractionEnabled:YES];

CGRect labelFrame = [label frame];
CGRect selfFrame = [self frame];
selfFrame.size = labelFrame.size;
[self setFrame:selfFrame];

[self addSubview:label];
[self setLabel:label];
karthik
  • 125
  • 1
  • 1
  • 5

0 Answers0